Osmdroid получить информацию о функции от геосервера wms - PullRequest
0 голосов
/ 07 января 2019

я хочу получить информацию о функции из wms geoserver, используя osmdroid, например openlayers, это как делать с 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'});
});

1 Ответ

0 голосов
/ 26 июля 2019

Чтобы получить данные объекта из слоя, присутствующего на 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
        )
    }
...