Как очистить полигон в API Google MapCSS

Разбираемся в CSS
Ответить
Anonymous
 Как очистить полигон в API Google Map

Сообщение Anonymous »


У меня есть код, который позволяет мне нарисовать прямоугольник на карте, но я не могу закрыть его при рисовании нового.

У меня есть кнопка с этой функцией, но я не могу ее сделать при рисовании нового прямоугольника. Не могли бы вы мне помочь. Идея состоит в том, чтобы иметь возможность нарисовать на карте только один прямоугольник.

Я прикрепил свой код на случай, если кто-нибудь поможет мне закрыть прямоугольник, когда я собираюсь нарисовать новый. С помощью newPolygon.setMap(null) я могу очистить последний прямоугольник.
let Poly, Map, NewPolygon; пусть полигонос = []; const btn = document.getElementById("удалить"); функция appendMarker(полилиния, индекс) { let newMarker = новый google.maps.Marker({ карта: карта, позиция: полилиния.getPath().getAt(индекс), }); Polyline.get("маркеры").push(newMarker); вернуть новыйМаркер; } функция initMap() { карта = новый google.maps.Map(document.querySelector("#map"), { масштаб: 13, }); btn.addEventListener("клик", () => { let маркеры = Poly.get("маркеры"); пусть путь = поли.getPath(); // Освобождение пути полилинии путь.очистить(); // очищаем маркеры в то время как (markers.getLength()) { маркеры.pop().setMap(null); } newPolygon.setMap(ноль); }); поли = новый google.maps.Polyline({ непрозрачность хода: 1.0, ходВес: 3, карта, }); Poly.set("маркеры", новый google.maps.MVCArray()); map.addListener("click", ({ latLng }) => { константный путь = поли.getPath(); path.push(latLng); /* console.log("путь к Кантидаду:" + path.length); console.log(latLng.lat()); console.log(latLng.lng()); */ }); google.maps.event.addListener(poly.getPath(), "insert_at", (index) => { пусть newMarker =appendMarker(poly, index); // Маркер-праймер tiene el poder de cerrar el poligono если (индекс === 0) { google.maps.event.addListener(newMarker, "click", () => { пусть путь = поли.getPath(); // создаем полигон с использованием анильо де ла полинеа newPolygon = новый google.maps.Polygon({ карта, ходВес: 2, fillColor: "#0a0", fillOpacity: 0,2, путь: path.getArray(), }); // Освобождаем массив полигонов каждый раз, когда вы просматриваете их многоугольник полигонос = []; // мы снова видим массив в области видимости, превосходящий его, если вы хотите использовать его в алгоритме.... полигонос.push(новыйПолигон); // Освобождение пути полилинии путь.очистить(); // очищаем маркеры let маркеры = Poly.get("маркеры"); в то время как (markers.getLength()) { маркеры.pop().setMap(null); } }); } }); }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «CSS»