Ответ 1
Вы должны сделать polyline.setMap(null)
, который удалит строку с карты. Documentation.
Маленький фон. У меня есть настройка навигации, когда вы нажимаете на определенный элемент навигации, он создает на карте markers
. Если вы нажмете на другой элемент навигации, он удалит предыдущий markers
и настроит новые.
Ну, теперь я работаю с polylines
и пытаюсь создать ту же концепцию здесь с polylines
, однако у меня трудное время. Вот что я имею:
// Global variable for array of lines
var points= [];
Настройте мои очки.
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);
Установите мои полилинии.
var polyline = new google.maps.Polyline({
path:points,
strokeColor:"#FF0000",
strokeOpacity:1.0,
strokeWeight:2
});
Инициализировать карту с помощью строк.
polyline.setMap(map);
Все работает хорошо. Строки создаются и отображаются между моими маркерами. Теперь удалим их (или нет...)
function removeLines() {
if (points) {
points.length = 0;
}
points = [];
}
removeLines() вызывается в начале функции, чтобы очистить их, а затем новые. Это действительно очищает мои точки в массиве точек, однако на самой карте polylines
все еще появляется и не исчезает, как это делают мои маркеры.
Что дает?!
Вы должны сделать polyline.setMap(null)
, который удалит строку с карты. Documentation.
полилиния - это всего лишь массив объектов LatLng, а не отдельных полилиний. Я думаю, вам, вероятно, нужен отдельный массив для полилиний, который вы можете затем перебрать, чтобы удалить их все. Создайте глобальную строку массива.
var line = [];
polyline = new google.maps.Polyline({
path: points,
strokeColor: "#FF0000",
strokeOpacity: 1.0,
strokeWeight: 2
});
line.push(polyline);
Теперь вы перетаскиваете все объекты полилинии в строку массива. Вы можете сделать его невидимым или удалить его с карты, зациклив его так:
for (i=0; i<line.length; i++)
{
line[i].setMap(null); //or line[i].setVisible(false);
}
mMap.clear()
эта строка обновит ваш экземпляр GoogleMap