osmdroid:加载自定义tilesource时显示的瓦片混乱

时间:2018-12-21 20:45:40

标签: java android android-studio osmdroid

我尝试显示来自自定义tileserver的tile。 我正在使用自己的tileserver(显示在https://www.url.be上) 此处显示的瓷砖正确。 我只是不明白为什么我的磁贴在android studio应用上弄乱了(使用osmdroid)。放大时,问题仍然存在。

查看此屏幕截图enter image description here

我的代码:

map = (MapView) findViewById(R.id.map);
// Create a custom tile source
map.setTileSource(new OnlineTileSourceBase("hot", 1, 20, 256, ".png",
new String[] { "https://www.url.be/hot/" }) {
    @Override
    public String getTileURLString(long pMapTileIndex) {
        return getBaseUrl()
        + MapTileIndex.getZoom(pMapTileIndex)
        + "/" + MapTileIndex.getY(pMapTileIndex)
        + "/" + MapTileIndex.getX(pMapTileIndex)
        + mImageFilenameEnding;
    }
});

//map.setTileSource(TileSourceFactory.MAPNIK);

map.setMultiTouchControls(true);
IMapController mapController = map.getController();
mapController.setZoom(15.0);
GeoPoint startPoint = new GeoPoint(51.111500, 3.985040);
mapController.setCenter(startPoint);

对此有何建议?

1 个答案:

答案 0 :(得分:2)

因此,我一直在进一步寻找这个问题。 我必须在代码中切换getY和getX。

所以:

return getBaseUrl()
                        + MapTileIndex.getZoom(pMapTileIndex)
                        + "/" + MapTileIndex.getY(pMapTileIndex)
                        + "/" + MapTileIndex.getX(pMapTileIndex)
                        + mImageFilenameEnding;

错了,应该是

return getBaseUrl()
                        + MapTileIndex.getZoom(pMapTileIndex)
                        + "/" + MapTileIndex.getX(pMapTileIndex)
                        + "/" + MapTileIndex.getY(pMapTileIndex)
                        + mImageFilenameEnding;

希望这对任何人都有帮助