如何使用osmdroid在Android中显示WMS

时间:2019-06-26 18:06:32

标签: android osmdroid

我想用osmdroid在Android中显示WMS。我写了这段代码。 但是它没有答案。怎么了?愿你指导我。 谢谢

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 :(得分:0)

osmdroid对wms的支持在beta方面有点。就是说,示例应用程序中有一个示例,并且有一个Wiki页面对此进行了讨论。

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

还有另一种与您的代码类似的方法,只要图块服务器可以使用边界,缩放和投影来为图块提供服务器,但是需要更多的工作。