Osmdroid从WMS GeoServer获取功能信息

0 android osmdroid

我想使用像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)

RUB*_*ARI 8

要从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)