13

我正在开发一个使用 Google Maps Javascript API v3 的 javascript Web 应用程序。地图允许用户做的一件事是沿着街道绘制路线。但是,我希望用户能够沿着已经被街道查看过的街道绘制路线,我遇到了一些问题......

当您将黄色街景人拖到地图对象上时,所有有效的街景街道都会亮起蓝色。但是,有时这些街道与实际地图没有正确对齐,有时地图上的街道没有经过街道查看。我的问题是如何让“有效街景区域”覆盖在地图上而不拖着黄色的人?有没有我可以以某种方式激活的层?

我希望该图层始终可见,以便用户可以判断他们正在绘制路线的街道是否已被街景查看,并能够确保他们的路线与街景网格对齐。

谢谢

4

2 回答 2

11

StreetViewCoverageLayer() 已添加到 v3 api,因此这是可能的。

https://developers.google.com/maps/documentation/javascript/reference#StreetViewCoverageLayer

var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var streetViewLayer = new google.maps.StreetViewCoverageLayer();
streetViewLayer.setMap(map);
于 2013-12-04T16:17:10.010 回答
3

在 API v3 中,没有在地图上显示蓝色叠加层的图层。以下是可用层的完整列表:https ://developers.google.com/maps/documentation/javascript/layers 。

目前,在 API 和官方地图网站上,蓝线实际上是显示在地图上的透明 PNG 瓦片 (256x256)。

有时它们无法正确对齐的原因是因为在某些国家/地区可以使用 Map Maker(协作地图编辑),并且人们弄乱了道路线,并且他们不会同时在所有 Google 服务中更新(对于街道查看可用性我什至认为它们根本不会更新)。

我能看到的唯一解决方法是熟悉谷歌地图(https://developers.google.com/maps/documentation/javascript/maptypes#TileCoordinates)中使用的平铺坐标系统,它也用于蓝色覆盖,并创建一个使用它的新地图类型/图层。

平铺链接示例:https ://mts2.google.com/mapslt?lyrs=svv&x=75041&y=47444&z=17&w=256&h=256&hl=en&style=40,18 。

x 和 y 是平铺坐标,z 是缩放

这有点复杂,但如果你打算这样做,我可以提供一些额外的资源。

但请注意:API 条款未涵盖此解决方法。

于 2012-08-05T22:07:22.713 回答