web-dev-qa-db-ja.com

Google Maps v3でポリゴンを追加および削除するにはどうすればよいですか?

APIのv3を使用して、ポリゴンをGoogleマップに表示および削除しようとしています。私のJavaScriptには、いくつかのカスタムLat-LongsのMVCArrayがすでにあります。

これらのポリゴンを追加する方法を理解しようとしています。その後、他のJavaScriptイベントまたはユーザーアクション(レンダリングされたポリゴンのクリックなど)に基づいて、そのポリゴンが削除されます。

誰かが助けることができますか?コードや例へのリンクはありますか?私はいくつかの例を見つけるのに苦労しています。それらのほとんどは通常、いくつかのv2コードに行きます。

16
Pure.Krome

APIドキュメントには、 ポリゴンをマップに追加する の簡単な例がいくつかあります。これは、単純な Bermuda Triangle の例の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);
  });

}
22
Mark

この答えがjavascriptに当てはまるかどうかはわかりませんが、間違いなくJavaに当てはまります。

削除するポリゴンオブジェクトへの参照がある場合は、そのポリゴンのremove()メソッドを呼び出すだけです。以下にリンクされているドキュメントを参照してください。

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

0
Salman Saeed