有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java GeoWebCache和osmdroid

我有一个GeoWebCache geo server,现在我想用它作为我的安卓应用程序的磁贴源。我该怎么做?这可能吗?我的努力:

    mResourceProxy = new ResourceProxyImpl(this.getActivity()
            .getApplicationContext());              
    mapView.setBuiltInZoomControls(true);       

    final MapTileProviderBasic tileProvider = new MapTileProviderBasic(this
            .getActivity().getApplicationContext());
    final ITileSource tileSource = new XYTileSource("es09", null, 3, 14,
            256, ".png", tilesURL);
    tileProvider.setTileSource(tileSource);
    final TilesOverlay tilesOverlay = new TilesOverlay(tileProvider, this
            .getActivity().getBaseContext());   

    mapView.getOverlays().add(tilesOverlay);

    mapView.setTileSource(tileSource);
    mapView.getOverlays().add(this.mMyLocationOverlay);
    mapView.invalidate(); 

其中tilesURLhttp://82.146.41.127:8080/geoserver/gwc/。结果呢

03-02 12:01:25.195: W/o*.o*.t*.m*.MapTileDow*(900): Problem downloading MapTile: /14/10434/5118 HTTP response: HTTP/1.1 400 Bad Request

另外,我应该使用什么样的URL?我找到了tms


共 (1) 个答案

  1. # 1 楼答案

    我建议您使用MapBox SDK来实现这一点。 您可以将geo server链接设置为WebSourceTileLayer,稍后将其设置为tile source

    有点简单

    添加代码供您参考

    if (layer.equalsIgnoreCase("OpenStreetMap"))
    {
        source = new WebSourceTileLayer(
                "openstreetmap",
                "http://tile.openstreetmap.org/{z}/{x}/{y}.png")
            .setName("OpenStreetMap")
            .setAttribution("© OpenStreetMap Contributors")
            .setMinimumZoomLevel(1)
            .setMaximumZoomLevel(18);
    } 
    mv.setTileSource(source);