use*_*340 5 center zooming geoserver leaflet
我已经从 Geoserver 添加了 WMS 层以显示在 Leaflet 上。但是,我想将地图自动缩放并居中到特定要素或多边形。有人对此有任何想法吗?所附图片是我想做的。
这是我的代码:
\n\n <div style="width:400px; height:400px" id="map"></div>\n <script>\n var osm = new L.TileLayer(\'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\',\n { attribution: \'Map data \xc2\xa9 <a href="http://openstreetmap.org">OpenStreetMap</a> contributors\' }\n );\n // Mapquest layer\n var mapquest = new L.TileLayer(\'http://otile{s}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png\', {\n maxZoom: 18,\n minZoom: 5,\n attribution: "\xc2\xa9<a href=\'http://openstreetmap.org/\' target=\'_blank\'>OpenStreetMap</a> contributors, Tiles Courtesy of <a href=\'http://open.mapquest.com\' target=\'_blank\'>MapQuest</a>",\n subdomains: [\'1\',\'2\',\'3\',\'4\']\n });\n //create map object\n var map = new L.Map(\'map\', {\n center: [12.565679, 104.990963],\n zoom: 8,\n layers: [mapquest]\n });\n\n var myLayer = new L.GeoJSON().addTo(map); \n\n function loadGeoJson(data) {myLayer.addData(data); }\n\n var rootUrl = \'http://localhost:8181/geoserver/Land_Natural_Resources/wms\';\n var layer_name = \'Land_Natural_Resources:elc_government_data_complete\'; \n var map_layer = L.tileLayer.wms(rootUrl, {\n layers: layer_name,\n format: \'image/png\',\n version: \'1.1.0\',\n transparent: true,\n attribution: "",\n tiled:true,\n featureID:\'elc_government_data_complete.1\'\n }).addTo(map); \n\n </script> \nRun Code Online (Sandbox Code Playgroud)\n
如果您像这样修改 loadGeoJson 函数:
function loadGeoJson(data) {
myLayer.addData(data);
map.fitBounds(myLayer.getBounds());
Run Code Online (Sandbox Code Playgroud)
}
这行:
map.fitBounds(myLayer.getBounds());
Run Code Online (Sandbox Code Playgroud)
将使用该多边形的最大可能缩放级别将地图平移到 GeoJSON 要素的边界。
| 归档时间: |
|
| 查看次数: |
3798 次 |
| 最近记录: |