我想使用像openlayers这样的osmdroid从wms geoserver获取功能信息,这就是openlayers的方法
var wms = new ol.source.TileWMS({
url: "http://localhost:8080/geoserver/topp/wms?",
params: { 'LAYERS': 'topp:tasmania_state_boundaries'}
});
var a = new ol.layer.Tile({
source: wms,
opacity: 0.5
});
map.on('singleclick', function (evt) {
var resolution = map.getView().getResolution();
var myurl = a.getSource().getGetFeatureInfoUrl(evt.coordinate, resolution, 'EPSG:4326', {'INFO_FORMAT': 'application/json'});
});
Run Code Online (Sandbox Code Playgroud)
要从GeoServer上存在的图层获取要素数据,您需要调用“ WMS服务”,然后添加图层详细信息,例如图层名称,版本,投影格式和缩放级别。
val layer = selectedCity.getBuildingLayerName()
val tile = projection.getTileFromMercator(projection.getMercatorXFromPixel(rtnPoint.x))
val tileY = projection.getTileFromMercator(projection.getMercatorYFromPixel(rtnPoint.y))
GlobalScope.launch {
val buildingFeatureData =getBuildingFeatureData(layer, tile, tileY, projection.zoomLevel.toInt())
activity!!.runOnUiThread {
Toast.makeText(activity!!.applicationContext, "$buildingFeatureData", Toast.LENGTH_LONG).show()
}
}
suspend fun getBuildingFeatureData(layer: String, x:Int, y:Int, zoom:Int):String {
return WebMercatorWMSFeatureExtractor(layer,"1.3.0","EPSG:3857").getFeatureData(
MapLayers.getMapsBaseUrl(ApiHelper.apiEndPoint),
"application/json",
x,y,
zoom
)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
132 次 |
| 最近记录: |