从 google map api v3 中删除路线
Posted
技术标签:
【中文标题】从 google map api v3 中删除路线【英文标题】:Remove directions from google map api v3 【发布时间】:2011-08-04 11:50:00 【问题描述】:我有一个使用 API v3 的谷歌地图,它可以获取从一个位置到另一个位置的路线。该应用程序运行良好,但获取方向的窗口是地图上的叠加层。我想要它,所以当这个窗口关闭时,方向会从地图中移除,但其他标记仍然存在。
我尝试了以下方法:
$('#content .close').live('click', function()
$('#content').hide();
directionDisplay = new google.maps.DirectionsRenderer();
directionDisplay.suppressMarkers = true;
directionDisplay.setMap(map);
return false;
);
这似乎按预期隐藏了窗口,但对于从地图中删除方向没有任何作用。
非常感谢任何帮助。
戴夫。
【问题讨论】:
***.com/questions/5232756/… 问题已经解决了!先搜索再问。 从这里:***.com/questions/5232756/…尝试方向Display.setDirections(routes: []); remove route with google map的可能重复 【参考方案1】:您可以将 DirectionsRenderer 的地图绑定更改为“null”以移除方向覆盖
directionDisplay.setMap(null);
【讨论】:
类似地,如果您使用面板来显示路线,您可以通过directionDisplay.setPanel(null);
来清除它
如果我想用同一张地图显示另一组路线怎么办?我再次在渲染器上设置地图?必须有更好的方法来做到这一点!【参考方案2】:
你可以试试这个,不要失去对地图的参考
directionDisplay.set('directions', null);
【讨论】:
这是一个有用的补充,对我有帮助,因为我需要维护参考。谢谢! 我觉得这应该被标记为答案。 Google 支持的 API 文档在初始化时将 DirectionsDistplay 对象绑定到地图和面板。因此,在使用页面事件操作路线时,清除路线内容似乎更有意义,而不是取消与地图和面板的连接。 这是最好的答案:它允许在不重新初始化地图的情况下显示/隐藏方向。【参考方案3】:您还可以使用:
directionsDisplay.setDirections(routes: []);
【讨论】:
【参考方案4】:应该是这样的:
directionDisplay.setMap(null);
【讨论】:
我找到了***.com/questions/3264072/…【参考方案5】:以上都不适合我,这是我需要的:
// Clear past routes
if (directionsDisplay != null)
directionsDisplay.setMap(null);
directionsDisplay = null;
【讨论】:
这与其他答案有何不同? 天哪,这是很久以前的事了,但我想仅仅将“setMap”属性设为空是不够的,我还必须将它的父级设为空才能使其按要求工作。【参考方案6】:使用directionDisplay.setMap(null);
将删除整个方向渲染器覆盖,包括标记。如果您只想删除保留标记的路线,您可以在初始化后使用setOptions
为suppressPolylines
更改 DirectionsRenderer 的选项设置
directionsDisplay.setOptions(
suppressPolylines: true
);
(另见我的另一个similar answer)
【讨论】:
如果你抑制折线,那么它们将永远不会显示。这里问题的上下文不同以上是关于从 google map api v3 中删除路线的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Google Maps v3 API 中删除带有 mysql 数据的标记?
Google Maps Api v3 - 如何删除集群图标?