OpenLayers(3)cc

来源:互联网 发布:电子商务美工论文范文 编辑:程序博客网 时间:2024/06/08 13:14

建立特性:

添加点,线,面。

function initializePolyonLayer(){
for(var j=0;j<2;j++){

var pointGemometries=[];

for(var i=0;i<5;i++){  

var px=Math.random()*240-180;

var py=Math.randosm()*100=90;

var pointGemotry=new OpenGeometries.push(pointGeometry);

}

var linearGemotry=new OpenLayer.Geometry().LinearRing(pointGemometries);

var polygonGeometry=new OpenLayers.Geometry.Polygon([linearGemometry]);

var polygonFeature=new OpenLayers.Feature.Vector(polygonGeometry);

polygonLayer.addFeatures(polygonFeature);

}


删除一个图层:

<script>

var wktLayer=new OpenLayers.Layer.Vector("wktLayer");

map.addLayer(wktLayer);

function clearLayer(){

wktLayer.removeAllFeatures();

}

function addFeature(){

var text=document.getElemetById("wktText").value();

var wkt=new OpenLayers.Format.WKT();

var features=wkt.read(text);

wktLayers.addFeatures(features);


}



</script>



}

addMarker

<script type="text/javascript">

var map=new OpenLayers.Map("ch3_markers");

var layer=new OpenLayers.Layers.OSM("OpenStreetMap"):

map.addLayer(layer);

map.addControl(new OpenLayrs.Control.LayerSwitcher());

map.setCenter(new OpenLayers.LoLat(0,0),2);

var markers=new OpenLayers.Layers.Markers("Markers");

map.addLayer(markers);

var icons=[];




for(var i=0;i<150;i++)

{

  var icon=Math.fool(Math.random()*icons.length);

var px=Math.random()*360-180;

var py=Math.random()*170-85;

var size=new OpenLayers.Size(32,37);

var offset=new OpenLayers.Pixel(-(size.w/2),-size.h);

var icon=new OpenLayers.Icon('./recipes/data/icons/'+icon[icon],size,offset);

icon.setOpacity(0.7);

var lonlat=new OpenLayers.Lonlat(px,py);

lonlat.transform(new OpenLayers.Projection("EPSG:4326"),new OpenLayers.Projection("EPSG:900913"));

var marker=new OpenLayers.Marker(lonlat,icon);

marker.events.register("mouservore",marker,function(){

this.inflate(1.2);

this.setOpacity(1);

});

marker.events.register("mouseout",marker,function(){

this.inflate(1/1.2);

this.setOpacity(0.7);

});

markers.addMarker(marker);


}

Using point featuers as markers

<script  type="text/javascript">

var map=new OpenLayers.Map("feature_markers");

var layer=new OpenLayers.Layers.OSM("OpenStreetMap");

map.addLayer(layer);

map.addControl(new OpenLayer.Control.LayerSwitcher());

map.setCenter(new OpenLayers.LonLat(0,0),2);

var  pointLayer=new OpenLayers.Layer.Vector("Features",{

projectin:"EPSG:933913":

});

var pointFeatures=[];

for(var i=0;i<150;i++){


var px=Math.random()*360-180;

var py=Math.random()*170-85;

var lonlat=new OpenLayers.LonLat(px,py);

lonlat.transform(new OpenLayers.Projecton("EPSG:4326",new OpenLayers.Projection("EPSG:900913")));

var pointGemetry=new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat);

var pointFeatrue=new OpenLayers.Feature.Vector(pointGemometry);

pointFeatures.push(pointFeature);

}

pointLayer.addFeatures(pointFeatures);


pointLayer.events.register("featureselected",null,function(event){

var layer=event.featur.layer;

event.feature.style={

fillColor:‘#ff9900’,

fillOpacity:0.7,

strokeColor:'#aaa',

pointRadius:12

};

layer.drawFeatuer(event.feature);

});

pointLayer.events.register("featureunselected",null,function(event){

var layer=event.feature.layer;

event.feature.style=null;

event.feature.renderIntent=null;

layer.drawFeature(event.feature);

});


var selectControl=new OpenLayers.Control.selectFeature(pointLayer);

map.addControl(selectControl);

selectConrolt.activate();



弹出窗口:

var map=new OpenLayers.Map(“ch3_popus”);

var layer=new OpenLayers.Layers.OSM("OpenStreetMap");

map.addLayer(layer);

map.setCenter(new OpenLayers.LonLat(0,0),2);

var pointLayer=new OpenLayers.Layer.Vector("Features",{

projection:"EPSG:900913";

})

map.addLayer(pointLayer);

var icons=[];

var pointFeatuers=[];

for(var i=0;i<150;i++)

{

var icon=Math.floor(Math.random()*icons.length);

var px=Math.random()*360-180;

var py=Maht.random()*170-85;

var lonlat=new OpenLayers.Lonlat(px,py);

var lonlat.transform(new OpenLayers.Project("EPSG:4326"),new OpenLayers.Projection("EPSG:900913"));

var pointGemotye=new OpenLayer.Gemometry.Point(lonlat.lon,lonlat.lat);

var pointFeature=new OpenLayers.Feature.Vector(pointGemoetyr,null,{

pointRadius:16,

fillOpacity:0.7

});

pointFeatures.push(pointFeature);

var selectControl=new OpenLayes.Control.SelectFeature(pointlayer,{

hover:true,

onSelect:function(feature)

{

var layer=featuer.layer;

feature.style.fillOpacity=1;

feature.style.pointRadius=20;

layer.drawFeature(feature);

var content="<div><Strong>Feature</strong></br>+feature.id+feature.geometry";


}

})


}


</script>

Navigatoin的应用:

var navigation=new OpenLayers.Control.Navigatin();

var history=new OpenLayers.Control.NavigationHistory();

var panel=new OpenLayers.Control.Panel();

panel.addControls([history.next,history]);

map.addControls([navigation,history,panel]);

map.setCenter(new OpenLayers.LonLat(0,0),4);

function navigationChanged(checked){

if(checked){

navigation.actiove();

}else{

navigatio.deactiovate();

}

}

Working with geolocation:

<scriopt type="text/javascript">

var map=new OpenLayers.Map("ch05_geolocatiog");

var osm=new OpenLayers.Layer.OSM();

map.addLayer(osm);

var geoglocate=new Openlayers.Control.Geolocate({

var geolocate=new OpenLayers.Control.Geolocate({

  eventListeners:{

      "locationupdated":locaeMarker,

        "locationfailed":function(){

                             console.log('Location detection failed');

                        }

           } 

  })

});

map.addControl(geolocate);

var markers=new OpenLayers.Layers.Markers("Markers");

map.addLayer(markers);


map.setCenter(new OpenLayers.LonLat(0,0),6);

function geolecationClick(){

geolocate.deactivate();

geolocate.activate();

var size=new OpenLayers.Size(32,37);

var offset=new OpenLayers.Pixel(-(size.w/2),-size.h);

var icon=new OpenLayers.Icon(''./recopes/data/icons/symbol_blank.png',size,offset);

icon.setOpacity(0.7);

var lonlat=new OpenLayers.LonLat(event.point.x,event.point.y);

var popup=null;

var marker=new OpenLayers.Marker(lonlat,icon);

}

marker.events.on({

"mouseover":function(){

 if(popup){

map.removePopup(popup);

}

var content="<strong>Longitude:</strong>"+lonlat.lon+"<br/>"

popup=new OpenLayers.Popup.FramedCloud("popup",lonlat,new OpenLayers.Size(250,100),content,null,true,null);

map.addPopup(popup);

}

});

markers.addMarker(marker);




</script>


Editing features on multiple vector layers

<div id="ch05_edition_vector" style="width:100%; height:100%"></div>

<script type="text/javascript">

   var map=new OpenLayers.Map("ch05_editting_vector");

var osm=new OpenLayers.Layer.OSM();

map.addLayer(osm);

map.addControl(new OpenLayers.Contro.LayerSwitcher());

map.setCenter(new OpenLayers.LonLat(0,0),3);

var vectorLayrA=new OpenLayrs.Layer.Vector("vector layer A");

var vectorlayerB=new OpenLayer.Vector("Vector layer B");

map.addLayer([vectorA,vectorB]);

var editingToolbarControl=new OpenLayers.Control.EditingToolbar(vectorLayerA);

map.addControl(editingToolbarControl);

function layerAChanged(checked){

if(checked){

  var controls=editingToolbarControl.getControlsByclass("OpenLayers.Control.DrawFeature");

  for(var =0;i<controls.length;i++){

controls[i].layer=vectorLayerA;

}

}

 function layerBChanged(checked)

 if(checked)

{  

    var controls=edittinTooolbarControl.getControlsByClass("OpenLayers.Control.DrawFeature");

  for(var i=0;i<controls.length;i++){ contorls[i].layer=vectorLayerB;}

}

    

}


}



</script>

Getting featuer information from data source

<div id="" style="withd:100%;height:100%"></div>

<script  type="text/javaScrpt">

OpenLayers.ProxyHost="./utils/proxy.php?url=";

var map=new OpenLayers,Map("");

var wms=new OpenLayers.Layer.WS("BASIC","http://vmap0"{

 layers:'basic';

});

map.addLayer(wms);

map.addControl(new OpenLayers.Control.LayerSwircher());

map.setCenter(new OpenLayers.LonLat(0,40),3);

var statsLayer=new OpenLayers.Layer.Vecor("state",{

protocl:new OpenLayers.Protocl.WFS({

  url:"http://demo"; featuerType:"states",featuerNS:"http://www.openplans.org/topp"

}),

strategies:[new Openlayers.Streatgy.BBOX()]

})

map.addLayer(statesLayer);


var europeLayer=new OpenLayers.Layer.Vector("EUROPE(GML)",{

protocol:new OpenLayers.Protocl.HTTP({

url:"http://loclahost:8080/openlayer-cookbook/recipts/data/europ.gml,

format:new OpenLayers.Format.GML()

}),

strategies:[new OpenLayers.Stragegy.Fixed()]

})

map.addLayer(europeLayer);

var selected=new OpenLayers.Layer.Vector("selected",{

styleMap:new OpenLayers.Style(OpenLayers.Featuer.Vector.style["temproary"}])

});

map.addLayer(selected);

vat getFeatuer=new OpenLayers.Control.GetFeature({

protocol:statsLayer.protocol,

box:true,

hove:false,

multipleKey:"shiftKey";

toggleKey:"ctrlKey',

eventListeners:

{

    “featureslected”:funciont(even){

       selected.addFeatures([event.feature]); 

  },"featureunselected":function(event)

{  

    selected.removeFeatuers([event.featuere]);

}

}


});

map.addControl(getFeature);

functin getFeatureClick(checked)

{

   if(checked)

    { 

             getFeature.activate();

      }else{

           getFeature.deactivate();

    }

}

function changeHandler()

{

    var usa=dijit.byid('usa').get('checked');

     if(usa){

          getFeature.protocol=statesLayer.protocol;

         }else{
                     getFeature.protocol=europeLayer.protocl;

              }


}

</script>

Getting information from WMS server

<div id="ch05_wmsfeatureinfo" style="width:100%;heigth:100%"></div>

<script type="text/javaScript">

OpenLayers.ProxyHost="./utils/proxy.php?url=";

var map=new OpenLayers.Map("ch05_wmsfeatureinfo");

var wms=new OpenLayers.Layer.WMS("Basic","http://demo.opengeo.org/geoserver/wms",{

layers:'top:naturalearth'

});

map.addLayrs(wms);

var wms2=new OpenLayers.Layer.WMS("Basic","http://demo.oprngeo.org/geoserve/wms",{

layers:'topp:stats',

transparent:true;

},{

isBaseLayer:false

});

map.addLayer(wms2);


map.addControl(new OpenLayers.Control.LayerSwitcher());

map.setCenter(new OpenLayers.LonLat(-90,40),4);

var featuer=new OpenLayers.Control.WMSGetFeatuerInfo({

url:''http:demo.opengeo.org/geoserve/wms,

title:'Identify features by clicking',

queryVisible:true,

eventListeners:{

"getFeatureinfo":function(event)

  {

         map.addPoput(new OpenLayers.Poput.FramedCloud{

           ""chicked',

           map.getLonLatFromPixel(event.xy),

           null,

          event.text,

           null,

           true    

          });

  }

}

});

map.addControl(featureInfo);

</script>

function featuerInfoChang(checked)

{

   if(checked){

     featuer.activate();  

  }else

     {   

             featuer.deactivate();

       }

}

Createing a new theme:

<script type="text/javascript" src="/openlayers.js"></script>

<link  rel="stylesheet" href="/style.css" type="text/css">

<link rel="stylesheet" href="/style.css" type="text/css">

<style>

thml.body{

width:100%;

height:100%;

margin:0;

padding:0

}

.historyClass

{

  position:absolute;

  top:5px;

  right:125px;

   z-index:9999;

}

</style>

<script type="text/javaScript">

OpenLyaers.ImgPath="http://localhost:8080/openLyares-cookbook/recipes/dataa/green_img/";

function init()

{

   var map=new OpenLayers.Map("che",{

   controls:[]

});

var osm=new OpenLayers.Layer.OSM();

map.addLayer(osm);

map.setCenter(new OpenLayers.LonLat(0,0),2);

var vecotrlayer=new OpenLayers.Vector("Vector Layer");

map.addLayer(vectorLayer);

map.addControl(new OpenLayers.Control.Navigation());

map.addContorl(new OpenLayers.Control.LayerSeitcher({roundedConrcer:false}));

map.addControl(new OpenLayers.Control.PanZoomBar({zoomWorkdIcoj:true}));

map.addContorl(new OpenLayers.Control.EditingToolbar(vectorLayer));


var history=new OpenLayers.Control.NavigationHistory();

var panel=new OpenLayers.Contorl.Panel({

dvi:document.getElementById('history');

})

panel.addContorls([history.next,history.previous]);

map.addControls([history,panel]);

<script>

<body onload="init()">

      <div id="ch06_them" style="width:100%;height:100%"></div>

       <div id="history" class="historyClass">

</body>


   

}



</script>


<script  type="text/javeScript">

var map=new OpenLayers.Map("ch07_styleMap");

var osm=new OpenLayers.LayerOSM();

map.addLayer(osm);

map.setCenter(new OpenLayers.LonLat(0,0),2);

var  color=['#EBC137',"E38c2d","#771E10","#48110c"];

var style=OpenLayer.Util.extend({},OpenLayers.Featuer.Vector.styel["default"]);

style.pointRadius="${radius}";

style.fillColor='colorFunction';

var defatulStyle=new OpenLayers.Style(style,{context:{colorFunction:function(feature){

return colors[featuer.attributes.temp];

}}});

var  vectorLayer=new OpenLayers.Vector("reatuerw",{styleMap:new OpenLayers.StyelMap(defaultStyle)});

map.addLayer(vectorLayer);

var pointFeatuers=[];

for(var i=0;i<150;i++)

{

var px=Math.random()*360-180;

var py=Math.random()*170-85;

var lonlat=new OpenLayers.LonLat(px,py);

lonlat.treansform(new OpenLayers.Projection("EPSG:4236"),new OpenLayers.Projection("EPSG:9000913"));


var pointGeometry=new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat);

var pointFeatuer=new OpenLayers.Feature.Vector(pointGemoetry);

var radius=Math.round(Math.random()*15+4);

var temp=Math.round(Mah.random()*4);

pointFeatuer.attributes.radius=radius;

pointFeature.attribute.temp=temp;

pointFeatuer.push(pointFeature);

var vectorLayer=new OpenLayers.Layer.Vector("Featuers",{

styleMap:new OpenLayers.StyleMap(defaultStyle);

});

map.addLayer(vectorLayer);

var pointFeatuer=[];

for(var i=0;i<150;i++)

{

  var px=Math.random()*360-180;

 var py=Math.random()*170-85;

var lonlat=new OpenLayers.LonLat(px,py);

lonlat.transfrom(new OpenLayers.Projectin("EPSF:4326",new OpenLayers.Projection("EPSG:900913");));

var pointGeometry=new OpenLayers.Geometry.Point(lonlat.lon,lonlat.lat);

var pointFeatuer=new OpenLayes.Featrue.Vector(pointGeometry);

var radious=Math.round(Math.random()*15+4);

var temp=Math.round(Math.random()*4);

pointFeature.attributes.radius=radius;

pointFeatuer.attributes.temp=temp;

pointFeatuers.push(pointFeature);

}

vectorLayer.addFeatrues(pointFeatures);




}





</script>


playing with styleMap and the render intents:

var map=new OpenLayers.Map("ch07_rendering_intents");

var osm=new OpenLayers.Layer.OSM();

map.addLayer(osm);

map.setCenter(new OpenLayers.LonLat(0,0),2);

 var defaultStyle = new OpenLayers.Style({
        fillColor: "#336699",
        fillOpacity: 0.4, 
        hoverFillColor: "white",
        hoverFillOpacity: 0.8,
        strokeColor: "#003366",
        strokeOpacity: 0.8,
        strokeWidth: 2,
        strokeLinecap: "round",
        strokeDashstyle: "solid",
        hoverStrokeColor: "red",
        hoverStrokeOpacity: 1,
        hoverStrokeWidth: 0.2,
        pointRadius: 6,
        hoverPointRadius: 1,
        hoverPointUnit: "%",
        pointerEvents: "visiblePainted",
        cursor: "inherit"
    });
    var selectStyle = new OpenLayers.Style({
        fillColor: "#ffcc00",
        fillOpacity: 0.4, 
        hoverFillColor: "white",
        hoverFillOpacity: 0.6,
        strokeColor: "#ff9900",
        strokeOpacity: 0.6,
        strokeWidth: 2,
        strokeLinecap: "round",
        strokeDashstyle: "solid",
        hoverStrokeColor: "red",
        hoverStrokeOpacity: 1,
        hoverStrokeWidth: 0.2,
        pointRadius: 6,
        hoverPointRadius: 1,
        hoverPointUnit: "%",
        pointerEvents: "visiblePainted",
        cursor: "pointer"
    });
    var temporaryStyle = new OpenLayers.Style({
        fillColor: "#587058",
        fillOpacity: 0.4, 
        hoverFillColor: "white",
        hoverFillOpacity: 0.8,
        strokeColor: "#587498",
        strokeOpacity: 0.8,
        strokeLinecap: "round",
        strokeWidth: 2,
        strokeDashstyle: "solid",
        hoverStrokeColor: "red",
        hoverStrokeOpacity: 1,
        hoverStrokeWidth: 0.2,
        pointRadius: 6,
        hoverPointRadius: 1,
        hoverPointUnit: "%",
        pointerEvents: "visiblePainted",
        cursor: "inherit"
    });
    

var styleMap=new Openlayers.StyleMap({

 'default': defaultStyle,

  'select':selectStyle,

   'temporary':temporaryStyle

});


var vectorLayer=new OpenLaers.Layer.Vector(Featuers",{

styleMap:styleMap

});

map.addLayer(vectorLayer);

var editingControl=new OpenLayers.Control.EditinToolbar(vectorLayer);

var modifyControl=new OpenLayers.Control.ModifyFeatuer(vectorLayer,{

toggle:true;

});

editingControl.addControls([modifyControl]);

map.addControl(editingControl);



<script type="text/javascript">

var map=new OpenLayers.Map("ch07_unique_value_rules");

var osm=new OpenLayers.Layer.OSM();

map.addLayer(osm);

map.setCenter(osm);

map.setCetner(new OpenLayers.LonLat(0,0),4);

var styles={7:{pointRadius:4,label:"${POP_RANK}"},

6:{pointRadius:7label:"${POP_RANK}",

5:{pointRadius10:label:"${POP_RANK}",

4:{pointRadius:13,lable:"${pop_RANK}",

3:{pointRadius:15,label:"${pop_rank}",

2:{pointRadius:18,label:"${POP_RANK}",fillColor:"yellow"},

1:{pointRadius:21,label:"${POP_RANK}",fillColor:"green"}

}

var styleMap=new OpenaLayers.StyleMap();

styleMap.addUniqueValueRules("default","POP_RNAK",styles);

map.addLayer(new OpenLayers.Layer.Vector("WORKD Citiye(GEOJSON)",{

protocol:new OpenLayer.Protocol,HTTP({

url:"http://localhost:8080/openlayers-cookbook/recipes/data/world_cities.json";

format:new OpenLayers.Format.GeoJSON();

}),

styleMap:styleMap,

strategies:[new OpenLayers.Streategy.Fixed()]

}));

}

}


}


}



</script>



0 0
原创粉丝点击