【问题标题】:android maps v2 api display metro lines overlayandroid maps v2 api显示地铁线路覆盖
【发布时间】:2013-08-15 10:43:17
【问题描述】:

我想在 Android 应用程序中显示地铁线路。事实上,我需要在几个站点上放置标记,而在坐标(LatLng)上放置其他标记。所以,我想有巴黎的谷歌地图(现在只有巴黎),以及它上面的车站。

我已经尝试过 GroundOverlay,但我认为它仅适用于小图像,我在使用全尺寸地图时收到 NullPointerException。 (1000 x 1000 像素)。我使用的图像是这张http://commons.wikimedia.org/wiki/File:Paris_Metro_map_complete.svg 转换为.bmp 的图像。

也许另一种方法是用线画线并圈出每个站点,但这需要大量工作!

所以我的问题是:

1) 我有办法在 android maps v2 api 上显示地铁和电车,就像旧的 maps.google.com(网站,而不是 android maps v1 api)一样?

2) 有没有办法使用这样的图像作为地图的叠加层?

3) 如果没有,您还有其他想法吗?您认为添加圆圈和线条是个好主意吗?

希望我清楚... 非常感谢 ! 奥德里克

【问题讨论】:

  • 透明覆盖是可以的,但我的经验是,要完成它需要做很多工作。我也很难将叠加层准确地放在正确的位置。最后但并非最不重要的一点是,使用大叠加层可能对性能非常不利!

标签: android android-maps-v2


【解决方案1】:

我建议使用TileOverlay

您可以直接将SVG文件与svg-android library一起使用,将其部分绘制成Bitmap,然后转换成PNG文件的byte[]用于TileProvider

我也不明白为什么你会在 1000x1000 像素的图像上得到 NullPointerException。那是只有 4MB 的内存。尝试将其转换为 PNG 而不是 BMP。

【讨论】:

  • 好的,我要试试这个。我发现stackoverflow.com/questions/16883997/… 可以将 x、y 和 getTile(来自 TileProvider)的缩放转换为纬度和经度,但我找不到在 SVG 文件中提取区域的方法。我怎样才能做到这一点 ?这就是你所说的“将它的一部分绘制到位图中”
猜你喜欢
  • 2012-11-21
  • 1970-01-01
  • 2013-09-26
  • 1970-01-01
  • 2013-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
相关资源
最近更新 更多