Osmdroid TileSource 分配 X 和 Y 参数

Osmdroid XYTileSource passing X and Y paramaters

我真的是这个路由和地图领域的新手。我有一个基本的,也许是愚蠢的问题。我使用 osmdroid 显示来自 URL 的图块,看起来像这样

http://tile01-cdn.maptoolkit.net/terrain/15/17789/11515.png

其中15代表缩放, 17789 X 值和 11515 Y

现在当我想使用 osmdroid 在地图上显示这个图块时,我不知道应该使用哪种 TileSource。最明显的是 XYTileSource 但构造函数没有任何要传递的 x y 参数,但我在互联网上看到很多 questions/answers 人们使用相同的对象但使用不同的构造函数。我在这里猜测库中的代码已更改。当前构造函数:

XYTileSource(String aName, int aZoomMinLevel, int aZoomMaxLevel, int aTileSizePixels, String aImageFilenameEnding, String[] aBaseUrl) 

所以我的问题是如何在 osmdroid 地图中显示我的这张瓦片地图,我应该使用哪种 ITileSource?我应该实施自己的定制吗?

我就是这样尝试的:

final ITileSource tileSource = new XYTileSource("Maverik", 15, 17789, 11515, ".png", new String[] {"http://tile01-cdn.maptoolkit.net/terrain/"});
        tileProvider.setTileSource(tileSource);

我得到一个空的 MapView

osmdroid 的用途是显示世界地图 - 有很多图块。并根据 "map view" 的居中位置显示适当的图块(该中心定义为:纬度、经度和缩放级别)。

如果这也是你想要的:

1) 例如,查看 osmdroid 中包含的默认图块源,在 TileSourceFactory

2) 然后你可以尝试这样的事情:

OnlineTileSourceBase tileSource = new XYTileSource("Maverik", 
  0, 17, 
  256, ".png", 
  new String[] {
    "http://tile01-cdn.maptoolkit.net/terrain/", 
    "http://tile02-cdn.maptoolkit.net/terrain/",
    "http://tile03-cdn.maptoolkit.net/terrain/"
  });
mapView.setTileSource(tileSource);

您可能还想查阅 osmdroid wiki 和示例应用程序的源代码。关于如何使用我们所知道的几乎每个图块源,有大量示例。我们还会添加更多被发现的内容。

https://github.com/osmdroid/osmdroid/wiki

您无需担心 X 和 Y 坐标。它们实际上不是 lat/lon 坐标,而是网格参考。 Open Street Maps 和许多其他图块源使用相同或相似的图块坐标系。从一幅图像中的世界开始。 Zoom =1 把它分成 4 部分。那是您的 X、Y 和缩放坐标。 Zoom =2 level,把我们开始的4个tile再分成4份,得到16个tile