2

我已经使用 Openstreetmap 瓦片作为 GroundOverlays 使用 Google Map Android API v2(即 osmdroid 不是一个选项)创建了一个离线地图,但有一个小问题:在缩放级别大于 14 时,一些瓦片之间有 1-3 像素空间他们。其他瓷砖完美排列。它们之间有空格和没有空格似乎是随机的。

我使用 JTileDownloader 下载瓦片,然后获取下载并放置在设备文件系统中的所需瓦片(使用此处描述的技术),然后获取瓦片的 LatLngBounds,然后将它们放在一个循环中,如下所示:

groundOverlay = mMap.addGroundOverlay(new GroundOverlayOptions()
                    .image(BitmapDescriptorFactory.fromBitmap(mBitmapImage))
                    .positionFromBounds(tileBoundsArray[i])
                    .transparency((float)0));

我已经验证了瓷砖的纬度和经度应该对齐。我还验证了所有位图的大小相同。我还使用 UrlTileProvider 尝试了这个特定的图块集,它工作正常,所以图块没有问题。这几天我一直在为此苦苦挣扎,希望有任何建议。我在其他任何地方都没有发现任何解决这个问题的地方。谢谢!

4

1 回答 1

2

我终于找到了这个问题的答案。我必须在瓦片的纬度上指定地图瓦片的宽度(以米为单位)(我使用瓦片的中心)。谷歌地图使用墨卡托投影,这意味着地图的宽度取决于纬度。您可以使用 GoundOverlay.setDimensions(width) 指定宽度。 本页解释了如何计算宽度。

于 2013-02-13T18:55:26.210 回答