使用谷歌地图删除路线

Ced*_*gas 28 javascript google-maps google-maps-api-3

我有一个使用Google Map的Direction Service功能的小应用程序.它运行良好,我可以改变路线,但我有一个小问题,用户可以在追踪路线后回到标记列表.

我找不到用谷歌地图删除路线的方法.对于我存储和做的标记setMap(null),在这里看不到方法......

tho*_*aux 52

你也可以使用:

directionsDisplay.setDirections({routes: []});
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您可以为所有路径使用一个带有一个渲染器的地图.

  • 这对我来说是一个更好的解决方案,因为如果你试图再次获得方向,第一个解决方案将抛出JS错误.但是,我做了'directionsDisplay.setDirections({routes:[]});` (3认同)

Tom*_*mik 33

如果您使用DirectionsRenderer来显示路由,您也可以在其上调用setMap(null).这样你就删除了显示的路线.

在此处使用示例代码 http://code.google.com/apis/maps/documentation/javascript/examples/directions-simple.html

只是打电话

directionsDisplay.setMap(null);
Run Code Online (Sandbox Code Playgroud)

  • 如果你这样做,它会在你尝试用另一条路线覆盖时回来,所以你可以在地图上显示这两条路线. (3认同)
  • 这可以从地图中删除directionsDisplay对象,但是如果要将一个路径替换为另一个路径,则只需将替换的路径添加到地图中即可. (2认同)
  • 像ajbraus所说,显示2条或更多条路线.没清理. (2认同)

shu*_*kes 6

因为在每次调用时,DirectionRenderer的新实例都会创建这就是为什么每个新实例都不知道以前的实例.

移动

var directionsDisplay = new google.maps.DirectionsRenderer();
Run Code Online (Sandbox Code Playgroud)

到全局(在所有其他全局变量已初始化的顶部.)

通过这样做,每次使用DirectionRenderer的单个实例.


jos*_*und 5

其他答案对我不起作用.我找到了这个问题的解决方案

directionsDisplay只定义一次(在click-handler 之外)


Fri*_*ode 5

这是修复

// Clear past routes
if (directionsDisplay != null) {
    directionsDisplay.setMap(null);
    directionsDisplay = null;
}
Run Code Online (Sandbox Code Playgroud)