我正在使用Google Maps Javascript API v3的javascript网络应用程序。地图让用户做的事情之一是沿街道绘制路线。但是,我希望用户能够沿着街道上的街道绘制路线,而且我遇到了一些问题...
当您将黄色街景人物拖到地图对象上时,所有有效的街景街道都会以蓝色亮起。然而,有时这些街道与实际地图不能正确对齐,而有时候地图上的街道也没有被街道观看过。我的问题是如何获得有效的街景区"叠加到地图上而不拖动黄色的家伙?有一层我能以某种方式激活吗?
我希望此图层始终可见,以便用户可以判断他们在路线上绘制的街道是否已经过街道查看,并且能够确保他们的路线与街景网格对齐。 / p>
由于
答案 0 :(得分:9)
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);
答案 1 :(得分:2)
在API v3中,没有图层在地图上显示蓝色叠加层。以下是可用图层的完整列表:https://developers.google.com/maps/documentation/javascript/layers。
目前,在API和官方地图网站上,蓝线实际上是在地图上显示的透明PNG图块(256x256)。
有时候他们没有正确对齐的原因是因为在某些国家/地区可以使用地图制作工具(协作地图编辑),人们搞砸道路线,并且他们不会同时更新所有Google服务(对于街景可用性,我甚至不认为它们会更新)。
我能看到的唯一解决方法是熟悉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条款不涵盖此解决方法。