日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > OpenLayers中長度測量和面積測量等功能的實現2

OpenLayers中長度測量和面積測量等功能的實現2

來源:程序員人生   發布時間:2014-10-08 20:51:58 閱讀次數:3407次

本文演示用另一種方法實現測量功能。

先上結果圖


功能實現:

1.      界面制作

在HTMLbody主體中添加相應代碼為:

<div id="map" class="smallmap"></div> <div id="options"> <divid="output"></div> <ulid="controlToggle"> <input type="button"name="type" value="長度"id="line" onClick="toggleControl(this);"checked="false"></input> <input type="button"name="type" value="面積"id="polygon" onClick="toggleControl(this);"checked="false"></input> <input type="button"name="type" value="取消"id="cancel" onClick="cancel(this);"checked="false"></input> <li> <input type="checkbox"name="geodesic" id="geodesicToggle"onclick="toggleGeodesic(this);" /> <label for="geodesicToggle">球面測量</label> </li> </ul> </div> <divid='map_element' style='width:1400px;height:800px;'></div> </body>


2.      CSS定義

<styletype="text/css"> #controlToggle li { list-style: none; } #options { position: relative; width: 400px; } #output { float: right; } /* avoid pink tiles */ .olImageLoadError { background-color: transparent !important; } </style>


3.      初始化init()方法實現,主要是加載地圖和初始化測量控件

functioninit(){ map = newOpenLayers.Map('map_element'); var wmsLayer= newOpenLayers.Layer.WMS( "global", "http://192.168.1.50:8080/geoserver/karl/wms", {layers: "global"} ); map.addLayer(wmsLayer); map.addControl(newOpenLayers.Control.LayerSwitcher()); map.addControl(new OpenLayers.Control.MousePosition()); // style the sketch fancy var sketchSymbolizers = { "Point": { pointRadius: 4, graphicName:"square", fillColor:"white", fillOpacity: 1, strokeWidth: 1, strokeOpacity: 1, strokeColor:"#333333" }, "Line": { strokeWidth: 3, strokeOpacity: 1, strokeColor:"#666666", strokeDashstyle:"dash" }, "Polygon": { strokeWidth: 2, strokeOpacity: 0.4, strokeColor:"#666666", fillColor: "red", fillOpacity: 0.3 } }; var style = new OpenLayers.Style(); style.addRules([ new OpenLayers.Rule({symbolizer:sketchSymbolizers}) ]); var styleMap = newOpenLayers.StyleMap({"default": style}); // allow testing of specificrenderers via "?renderer=Canvas", etc var renderer = OpenLayers.Util.getParameters(window.location.href).renderer; renderer = (renderer) ? [renderer]: OpenLayers.Layer.Vector.prototype.renderers; measureControls = { line: newOpenLayers.Control.Measure( OpenLayers.Handler.Path, { persist: true, handlerOptions: { layerOptions: { renderers:renderer, styleMap:styleMap } } } ), polygon: newOpenLayers.Control.Measure( OpenLayers.Handler.Polygon,{ persist: true, handlerOptions: { layerOptions: { renderers:renderer, styleMap:styleMap } } } ) }; var control; for(var key in measureControls) { control = measureControls[key]; control.events.on({ "measure":handleMeasurements, "measurepartial":handleMeasurements }); map.addControl(control); } map.zoomToMaxExtent(); document.getElementById('noneToggle').checked = true; }


4.      測量功能實現

functionhandleMeasurements(event) { var geometry = event.geometry; var units = event.units; var order = event.order; var measure = event.measure; var element =document.getElementById('output'); var out = ""; if(order == 1) { out += "結果: " +measure.toFixed(3) + " " + units; } else { out += "結果: " +measure.toFixed(3) + " " + units + "<sup>2</" +"sup>"; } element.innerHTML = out; } function toggleControl(element) { //alert("Hello"); toggleImmediate(element); for(key in measureControls) { var control =measureControls[key]; if(element.id == key &&element.checked) { control.activate(); } else { control.deactivate(); } } } function cancel(element) { //measureControl.deactivate(); //map.removeControl(measureControl); for(key in measureControls) { var control =measureControls[key]; if(control != null) { control.deactivate(); map.removeControl(control); } } } function toggleGeodesic(element) { for(key in measureControls) { var control =measureControls[key]; control.geodesic =element.checked; } } function toggleImmediate(element) { for(key in measureControls) { var control =measureControls[key]; control.setImmediate(element.checked); } }


5.      功能展示



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 最新国产精品精品视频 | wwwxx国产 | 精品在线视频观看 | 一级黄色在线看 | 中文字幕久久精品 | 久久曰| 最近的中文字幕在线看视频 | 18资源在线www免费 | 粉嫩一区二区 | 一级黄色大片在线观看 | 精品久久久av | 国产成人综合自拍 | 精品综合在线 | 五月婷婷激情网 | 国产精品资源 | 亚洲成人xxx| 成人性生交大片免费网站 | 欧美一区二区免费 | 欧美日韩不卡在线 | 亚洲精品在线视频观看 | 亚洲成人av在线 | 成人精品毛片 | 日韩一区二区高清 | 精品久久久久久国产 | 国产精一区 | 九九成人| 欧美一级夜夜爽 | 亚洲精品中文字幕在线 | 国产午夜精品久久久 | 亚洲福利网 | 精品国产凹凸成av人导航 | 久久久国产一区 | 成人久久久精品乱码一区二区三区 | 久久久久久一区二区三区四区别墅 | 黄色一级大片在线免费看产 | 国产欧美日韩在线观看 | 精品久久中文字幕 | 曰韩三级 | 亚洲电影在线 | 欧美日韩成人精品 | 国产91丝袜在线播放九色 |