Как очистить полигон в API Google Map ⇐ CSS
-
Anonymous
Как очистить полигон в API Google Map
У меня есть код, который позволяет мне нарисовать прямоугольник на карте, но я не могу закрыть его при рисовании нового.
У меня есть кнопка с этой функцией, но я не могу ее сделать при рисовании нового прямоугольника. Не могли бы вы мне помочь. Идея состоит в том, чтобы иметь возможность нарисовать на карте только один прямоугольник.
Я прикрепил свой код на случай, если кто-нибудь поможет мне закрыть прямоугольник, когда я собираюсь нарисовать новый. С помощью 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); } }); } }); }
У меня есть код, который позволяет мне нарисовать прямоугольник на карте, но я не могу закрыть его при рисовании нового.
У меня есть кнопка с этой функцией, но я не могу ее сделать при рисовании нового прямоугольника. Не могли бы вы мне помочь. Идея состоит в том, чтобы иметь возможность нарисовать на карте только один прямоугольник.
Я прикрепил свой код на случай, если кто-нибудь поможет мне закрыть прямоугольник, когда я собираюсь нарисовать новый. С помощью 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); } }); } }); }
Мобильная версия