Как показать WMS в андроиде с osmdroid - PullRequest
0 голосов
/ 26 июня 2019

Хочу показать WMS в андроиде с osmdroid. Я написал этот код. Но это не ответ. В чем дело? Можете ли вы вести меня. Спасибо

public class OSMFragmentTest extends Activity {
    @Override public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.frafment_layout_test);
        MapView map = (MapView) findViewById(R.id.osm_wms_1);
        WMSTileSource wmsTileSource;

        wmsTileSource = new WMSTileSource( "OGC:WMS", new String[]{"http://ows.terrestris.de/osm/wms"},"SRTM30-Hillshade","1.1.1","EPSG:4326","",5 );
        map.setTileSource(wmsTileSource);
        map.setBuiltInZoomControls(true);
        map.setMultiTouchControls(true);

        GeoPoint startPoint = new GeoPoint(37.1, 57.01);
        IMapController mapController = map.getController();
        mapController.setZoom(9);
        mapController.setCenter(startPoint);
    }
}

1 Ответ

0 голосов
/ 27 июня 2019

поддержка wms от osmdroid немного на стороне беты. Тем не менее, в примере приложения есть пример, и есть вики-страница, где это обсуждается.

https://github.com/osmdroid/osmdroid/wiki/WMS-Support

и вот пример источника приложения, который запрашивает у пользователя сервер, получает слои, спрашивает пользователя, какой слой показать, а затем отображает его.

https://github.com/osmdroid/osmdroid/blob/master/OpenStreetMapViewer/src/main/java/org/osmdroid/samplefragments/tilesources/SampleWMSSource.java

Существует другой способ, аналогичный вашему коду, при условии, что сервер плиток может сервировать плитки с использованием границ, масштабирования и проекции, но если требуется немного больше работы.

...