Как добавлять и удалять полигоны на Google Maps v3?

Я пытаюсь показать и удалить многоугольники на карте Google, используя v3 API. В моем JavaScript у меня уже есть MVCArray некоторых пользовательских Lat-Longs.

Я пытаюсь выяснить, как добавить эти многоугольники, а затем, на основе какого-либо другого события JavaScript или действия пользователя, такого как щелчок по многоугольнику (который был визуализирован), этот многоугольник будет удален.

Кто-нибудь может помочь? Любой код или ссылки на примеры? Я изо всех сил пытаюсь найти некоторые примеры. Большинство из них обычно идут на какой-то код v2.


person Pure.Krome    schedule 06.08.2010    source источник


Ответы (2)


В документации по API есть несколько простых примеров добавления полигон на карту. Вот функция initialize() из простого Бермудского треугольника пример с добавлением прослушивателя событий для удаления полигона при нажатии.

function initialize() {
  var myLatLng = new google.maps.LatLng(24.886436490787712, -70.2685546875);
  var myOptions = {
    zoom: 5,
    center: myLatLng,
    mapTypeId: google.maps.MapTypeId.TERRAIN
  };

  var bermudaTriangle;

  var map = new google.maps.Map(document.getElementById("map_canvas"),
      myOptions);

  var triangleCoords = [
      new google.maps.LatLng(25.774252, -80.190262),
      new google.maps.LatLng(18.466465, -66.118292),
      new google.maps.LatLng(32.321384, -64.75737),
      new google.maps.LatLng(25.774252, -80.190262)
  ];

  // Construct the polygon
  bermudaTriangle = new google.maps.Polygon({
    paths: triangleCoords,
    strokeColor: "#FF0000",
    strokeOpacity: 0.8,
    strokeWeight: 2,
    fillColor: "#FF0000",
    fillOpacity: 0.35
  });

  bermudaTriangle.setMap(map);

  // add an event listener
  google.maps.event.addListener(bermudaTriangle, 'click', function() {
      this.setMap(null);
  });

}
person Mark    schedule 06.08.2010
comment
АХ! поэтому хитрость заключалась в том, чтобы убедиться, что экземпляр google.maps.Polygon является глобальным.. чтобы вы могли ссылаться на тот же экземпляр, чтобы удалить его.. вместо того, чтобы пытаться найти экземпляр на карте и т. д. . Попался :) - person Pure.Krome; 07.08.2010

Я не уверен, относится ли этот ответ к javascript, но определенно относится к java.

Если у вас есть ссылка на многоугольник, который вы хотите удалить, просто вызовите метод remove() этого многоугольника. См. документацию, указанную ниже.

https://developers.google.com/android/reference/com/google/android/gms/maps/model/Polygon.html#remove()

person Salman Saeed    schedule 17.01.2018
comment
polygon.remove() есть только в Java Android API. В JS используйте polygon.setMap(null) - person Keith; 12.10.2020