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>
- OpenLayers(3)cc
- OpenLayers 3 简介
- OpenLayers 3 Map构成
- openlayers 3(一)
- OpenLayers 3 介绍
- OpenLayers 3 入门指南
- OpenLayers 3 自定义坐标系
- openlayers
- openlayers
- OpenLayers
- openlayers
- openLayers
- OpenLayers
- openlayers
- OpenLayers 3 之加载地图
- The book of OpenLayers 3
- Openlayers 3 linedash画虚线
- OpenLayers 3 +天地图展示
- easyUI的tree和treeGrid不需要递归取,有内置的成树字段
- 如何获取鼠标在div中的相对位置
- Insufficient free space: 25 extents needed, but only 0 available
- 记录一下比较好用的小工具
- QTP DEV控件相关
- OpenLayers(3)cc
- LeetCode之Gas Station
- javascript 中 中文编码
- 关于接口CvCameraViewListener2
- .net自定义控件Control、WebControl、CompositeControl
- ICE资料
- 持续集成(三)- hudson插件入门
- 金额转中文大写
- 印度政府计划在2013年出台约合140元人民币的平板电脑