Rom*_*mes 20 google-maps polyline google-maps-api-3 google-maps-markers
小背景.我有一个导航设置,当你点击某个导航项时,它会markers在地图上创建.如果单击其他导航项,则会删除上一个导航项markers并设置新项.
那么现在我正在努力polylines并试图在这里创建相同的概念polylines,但是我遇到了困难.这是我有的:
// Global variable for array of lines
var points= [];
Run Code Online (Sandbox Code Playgroud)
设置我的观点.
line1 = new google.maps.LatLng(line1Start, line1Finish);
line2 = new google.maps.LatLng(line2Start, line2Finish);
line3 = new google.maps.LatLng(line3Start,line3Finish);
points.push(line1, line2, line3);
Run Code Online (Sandbox Code Playgroud)
设置我的折线.
var polyline = new google.maps.Polyline({
path:points,
strokeColor:"#FF0000",
strokeOpacity:1.0,
strokeWeight:2
});
Run Code Online (Sandbox Code Playgroud)
用线初始化地图.
polyline.setMap(map);
Run Code Online (Sandbox Code Playgroud)
一切顺利.线条被创建并显示在我的标记之间.现在让我们删除它们(或不...)
function removeLines() {
if (points) {
points.length = 0;
}
points = [];
}
Run Code Online (Sandbox Code Playgroud)
removeLines()在函数的开头被调用以清除它们,然后设置新的.这确实清除了我在点数组中的点,但是在地图本身上polylines仍然显示并且不会像我的标记那样消失.
是什么赋予了?!
Ara*_*sok 17
折线只是LatLng对象的数组,而不是单独的折线.我想你可能需要一个单独的折线数组,你可以循环将它们全部删除.创建全局数组行.
var line = [];
polyline = new google.maps.Polyline({
path: points,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
line.push(polyline);
Run Code Online (Sandbox Code Playgroud)
现在,您将所有折线对象推送到数组线.您可以通过循环将其隐藏或从地图中删除它:
for (i=0; i<line.length; i++)
{
line[i].setMap(null); //or line[i].setVisible(false);
}
Run Code Online (Sandbox Code Playgroud)