我在这个路由和地图区域真的很新。我有一个基本的,也许是愚蠢的问题。我使用osmdroid来显示来自这个
的URL的图块http://tile01-cdn.maptoolkit.net/terrain/15/17789/11515.png
其中15代表 zoom , 17789 X 值和 11515 Y 值
现在,当我想使用osmdroid在地图中显示这个图块时,我不知道应该使用哪种TileSource。最明显的是XYTileSource
,但构造函数没有任何x y参数可以传递,但我在互联网上看到很多问题/答案,其中人们使用相同的对象,但使用不同的构造函数。我在这里猜测代码在lib中发生了变化。当前的构造函数:
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
。
答案 0 :(得分:1)
osmdroid的目的是显示世界地图 - 有很多瓷砖。并根据“地图视图”居中的位置显示相应的图块(此中心定义为:纬度,经度和缩放级别)。
如果这也是你想要的:
1)例如,在https://github.com/iron-meteor/iron-router/search?utf8=%E2%9C%93&q=IronRouterNoRoutes
中查看osmdroid中包含的默认磁贴源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);
答案 1 :(得分:1)
您可能还需要咨询osmdroid wiki和示例应用程序的源代码。有很多关于如何使用我们所知道的每个瓷砖源的例子。我们也在发现它们时添加更多。
https://github.com/osmdroid/osmdroid/wiki
您无需担心X和Y坐标。它们实际上不是纬度/经度坐标,而是网格参考。打开街道地图和许多其他平铺源,使用相同或类似的平铺坐标系。从一个图像中的世界开始。缩放= 1将其分为4个部分。那是你的X,Y和Zoom坐标。缩放= 2级,将我们开始的四个图块再次划分为4,我们有16个图块。