Не могу удалить символ с polylines
/*
| Построение трека по заданным параметрам
| Функция построения трека
*/
function build_road_map(options) {
clearMap();
/* Переменная точки движения по polyline */
lineSymbol = {
path: google.maps.SymbolPath.CIRCLE,
hidden: true,
scale: 5,
strokeColor: '#393'
};
/* Область показа маркеров (Для центровки карты по области) */
var markersBounds = new google.maps.LatLngBounds();
/* Конвертируем JSON в объект */
options = JSON.parse(options);
remove_polylines();
/* Определяем линии google polyline для построения линий */
polylines = new google.maps.Polyline({
path: options.coordinates,
geodesic: true,
strokeColor: '#FF0000',
strokeOpacity: 1.0,
strokeWeight: 2,
icons: [{
icon: lineSymbol,
offset: '100%'
}]
});
/* Удаляем все линии */
polylines.setMap(null);
/* Устанавливаем новые линии */
polylines.setMap(map);
/* Удаляем все маркеры */
remove_marker();
/* Устанавливаем маркеры (Начальный и конечный) */
if (options.markers.is) {
add_marker(markersBounds, options.markers.start, 'A');
add_marker(markersBounds, options.markers.end, 'B');
}
/* Центрируем и масштабируем карту */
map.setCenter(markersBounds.getCenter(), map.fitBounds(markersBounds));
/* Анимация движения */
if (options.motion_animation) {
animateCircle(polylines);
}
}
/*
| Анимация движения
| Функция для изменения смещения символа с фиксированными интервалами
*/
function animateCircle(line) {
var icons = line.get('icons');
var count = 0;
var listener = window.setInterval(function() {
count = (count + 1) % 200;
icons[0].offset = (count / 2) + '%';
line.set('icons', icons);
}, 50);
}
/*
| Управление маркерами
| Функция удаления всех маркеров
*/
function remove_marker() {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
markers = [];
}
/*
| Управление линиями
| Функция удаления всех линий
*/
function remove_polylines() {
for (var i = 0; i < polylines.length; i++) {
polylines[i].setMap(null);
}
polylines = [];
}
/*
| Управление маркерами
| Функция добавление маркера на карту
*/
function add_marker(markersBounds, location, label) {
/* Определяем широту и долготу в формате google */
LatLng = new google.maps.LatLng(location.lat, location.lng);
/* Определяем маркер */
marker = new google.maps.Marker({
position: LatLng,
label: label,
draggable: true,
animation: google.maps.Animation.DROP,
title: location.title
});
/* Устанавливаем маркер */
marker.setMap(map);
markers.push(marker);
/* Определяем контент */
var content = location.content;
var infowindow = new google.maps.InfoWindow()
/* Устанавливаем обработчик при нажатии на маркер */
google.maps.event.addListener(marker, 'click', (function(marker, content, infowindow) {
return function() {
infowindow.setContent(content);
infowindow.open(map, marker);
};
})(marker, content, infowindow));
/* Выводим контент для маркера */
if (location.show_content) {
infowindow = new google.maps.InfoWindow({ content: content });
infowindow.open(map, marker);
}
/* Добавляем координаты маркера в область */
markersBounds.extend(LatLng);
}
/*
| Сброс всей карты на чистое состояние и сброс всех переменных
| используется для отображения каждого запроса
*/
function clearMap() {
/* Очистить все линии */
for (var i = 0; i < polylines.length; i++) {
polylines[i].setMap(null);
}
/* Очистить все маркеры */
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
/* Очистить все */
polylines = [];
markers = [];
}
При повторном вызове функции animateCircle(polylines) накладывается второй символ, при последующем вызове добавляется ещё один символ и так N раз.
Карту очищаю, маркеры очищаю, линии тоже. Но символ не удаляется.
Принцип работы карты такой: Инициализация карты, а потом все функции по карте без перезагрузок
Подскажите как удалить символ?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В общем, требуется сгенерировать текст по принципу: тянем рандомно по одной строке из нескольких файлов, выбираем определенное количество...