openstreetmap - 使用 Google Map Android API v2 的 GroundOverlay 之间的空间

标签 openstreetmap android-maps-v2

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

我使用 JTileDownloader 下载图 block ,然后获取所需的图 block (使用我下载并放置在设备文件系统中的 here) 描述的技术,然后获取图 block 的 LatLngBounds,然后将它们放在循环为:

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

我已经验证了图 block 的纬度和经度应该对齐。我还验证了所有位图的大小相同。我还使用 UrlTileProvider 尝试了这个特定的图 block 集,它工作得很好,所以图 block 没有任何问题。我已经为此苦苦挣扎了好几天,非常感谢任何建议。我在其他任何地方都找不到解决这个问题的方法。谢谢!

最佳答案

我终于找到了这个问题的答案。我必须在图 block 的纬度处指定 map 图 block 的宽度(以米为单位)(我使用了图 block 的中心)。 Google map 使用墨卡托投影,这意味着 map 的宽度取决于纬度。您可以使用 GoundOverlay.setDimensions(width) 指定宽度。 This页面给出了如何计算宽度的解释。

关于openstreetmap - 使用 Google Map Android API v2 的 GroundOverlay 之间的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14641286/

相关文章:

openstreetmap - 如何从立交桥数据中获取名称标签和高速公路标签的值?

javascript - 如何使用 OSM 检索某个 GeoLocation 的自然特征?

android - android maps api v2中的彩色折线

java - 错误 : Cannot access onCameraIdleListener

java - 从一组坐标和距离计算新的 GPS 坐标?

android - 在google map static api中绘制圆形路径

openstreetmap - 是否有任何与 OpenStreetMap 兼容的免费路线 REST API?

openstreetmap - 如何使用 Open Street Maps API 从坐标获取地址?

postgresql - 错误 : function make_standard_name(unknown) does not exist while installing OSM-nominatim API

android - 将 SupportMapFragment 放在 DialogFragment 上