2012-06-12 58 views
7

我一直想在我的应用程序中显示谷歌地图的交通层,从我的研究就应该设置定制路况图层谷歌地图

 mapView.setTraffic(true); 

我MapActivity后显示出来,但是,我没有能够让它出现。

经过一番研究,我发现Google Maps API不支持我的区域(巴西圣保罗)的流量层,至少不是通过使用他们的API,因为它有可能检查我的区域的流量层if我使用Google地图本身。

我的主要问题是:是否可以使用我自己的数据库为Google Maps显示的地图上的交通状况创建某种自定义流量图层?我怎么能根据他们的交通状况来绘制街道?我认为叠加对于这项工作不足够。

有什么想法?

编辑1:仍在研究这个,也许唯一的办法是试图最小化地图,使用自定义覆盖并提供标签来解释每个覆盖?

+0

我一直在寻找这个:( – dccarmo

回答

2

我希望我可以做一个评论而不是答案,但我仍然没有这种力量。

我猜测Google与提供圣保罗市交通数据的公司之间的许可协议不允许第三方(即使用Maps API的开发商)使用。这是唯一合理的解释,因为有流量数据Google Maps for São Paulo,但不是在自己的谷歌的example for traffic layer on Maps V3 API

所以我认为唯一的选择是你提到的。如果您拥有自己的拥有流量数据的数据库,则可以创建自己的Overlay子类,覆盖draw方法在街道上绘画。您将不得不使用MapView.getProjection()来获取Projection对象,以便您可以将坐标映射到MapView上的像素以绘制流量指示器。

我希望我有某种帮助。

+0

真棒!从我研究过的你可能是对的,我们知道在地图应用程序区域有一家知名公司可以提供交通信息谷歌,所以他们之间必须有一个独家协议:/不知道这个getProjection()是如何工作的,会试试这个!谢谢!PS:我会标记你的答案是正确的,因为我相信它是最接近的这个问题@ _ @ – thiagocfb

+0

这个答案看起来很合理,我看到一些位置上有Google Maps上的流量数据**和** v3 API上的流量图层,我注意到了波哥大,利马和巴拿马附近的情况运河,在南美没有其他地方,也许谷歌与这些地区的交通数据提供商签有许可协议,至今为止? –