Java mapquest android的利弊

Java mapquest android的利弊,java,android,openstreetmap,mapquest,Java,Android,Openstreetmap,Mapquest,我需要构建一个android地图应用程序,包括标记、多段线、多边形和一些点击监听器。应用程序不得使用谷歌API,而可以使用OSM数据。我有一个自定义的瓷砖服务器,并在应用程序中集成它寻找。我遇到了Mapquest,它同样提供了我需要的东西。我所要知道的就是我是否可以将我自己的tile服务器与之集成。如果您有任何帮助,我们将不胜感激。Mapquest将使用OSMdroid作为底图进行无缝集成。话虽如此,它需要一把钥匙才能工作。下面是我的基本映射切换器(它接收基本映射的索引并相应地进行切换)。您可以

我需要构建一个android地图应用程序,包括标记、多段线、多边形和一些点击监听器。应用程序不得使用谷歌API,而可以使用OSM数据。我有一个自定义的瓷砖服务器,并在应用程序中集成它寻找。我遇到了Mapquest,它同样提供了我需要的东西。我所要知道的就是我是否可以将我自己的tile服务器与之集成。如果您有任何帮助,我们将不胜感激。

Mapquest将使用OSMdroid作为底图进行无缝集成。话虽如此,它需要一把钥匙才能工作。下面是我的基本映射切换器(它接收基本映射的索引并相应地进行切换)。您可以很容易地选择在底图之间切换:

public boolean mapTileServerSwap() {
    boolean flagOK = false;
    String[] urlArray = {""};
    int mapTileServer = SessionPreferences.mapTileServer;
    switch (mapTileServer) {
        case(0):
        default:
            mapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);
            flagOK = true;
            break;
        case(1):
            urlArray[0] = "http://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/";
            mapView.setTileSource(new OnlineTileSourceBase("ArcGIS Online", null, 0, 18, 256, "",
                    urlArray) {
                @Override
                public String getTileURLString(MapTile aTile) {
                    String mImageFilenameEnding = ".png";
                    return getBaseUrl() + aTile.getZoomLevel() + "/" + aTile.getY() + "/" + aTile.getX()
                            + mImageFilenameEnding;
                }
            });
            flagOK = true;
            break;
        case(2):
            urlArray[0] = "http://basemap.nationalmap.gov/ArcGIS/rest/services/USGSTopo/MapServer/tile/";
            mapView.setTileSource(new OnlineTileSourceBase("USGS Topo", null, 0, 18, 256, "",
                    urlArray) {
                @Override
                public String getTileURLString(MapTile aTile) {
                    String mImageFilenameEnding = ".png";
                    return getBaseUrl() + aTile.getZoomLevel() + "/" + aTile.getY() + "/" + aTile.getX()
                            + mImageFilenameEnding;
                }
            });
            flagOK = true;
            break;
        case(3):
            mapView.setTileSource(TileSourceFactory.MAPQUESTAERIAL);
            flagOK = true;
            break;
        case(4):
            mapView.setTileSource(TileSourceFactory.MAPQUESTOSM);
            flagOK = true;
            break;
        case(5):
            //TODO 20160509
            // fix copyright and attributions for STAMEN!
            urlArray[0] = "http://a.tile.stamen.com/watercolor/";
            mapView.setTileSource(new XYTileSource("Stamen WaterColor", null, 0, 18, 256, ".jpg",
                    urlArray ));
            flagOK = true;
            break;
        case(6):
            urlArray[0] = "http://a.stamen.com/terrain/";
            mapView.setTileSource(new XYTileSource("Stamen Terrain", null, 0, 18, 256, ".jpg",
                    urlArray ));
            flagOK = true;
            break;
    }
    return flagOK;
}

请阅读。如果当前代码存在特定问题,请询问该特定问题。如果您当前的代码完全按照它应该的方式工作,并且您希望使其更高效,那么请在上向审阅者展示它。如果你希望别人为你写,那么你就上错了网站。这是我们互相帮助的地方,但我们不是为了你。有关堆栈溢出的更多信息,请查看。另外,请查看以查看如何为您的问题提供示例。我的互动程序服务器是XYZ.png格式的示例:{z}/{x}/{y}.png”,我需要与我的应用程序集成。我已将我的代码与您的上述实现附在此处:。帮助我,谢谢!@scai是的,我尝试了上面的链接(tony gil的示例)最后出现了错误。我在这里附上了截图:。我只想删除mapquest地图并替换为我的,我在需要解决问题的地方被卡住了put@himagaran如前所述,请提出一个新问题,因为这是一个不同的问题。让我们。嘿,托尼吉尔,我得到一个无法解决的关键字错误代码中的“.setTileSource”和“SessionPreferences”。请帮助我