1. ホーム
  2. javascript

[解決済み] googleマップのマーカーにIDを追加する

2023-07-09 23:50:48

質問

ループしてマーカーを1つずつ追加していくスクリプトがあります。

現在のマーカーに情報ウィンドウを表示し、地図上に一度に 5 つのマーカーしか表示しないようにしようとしています (情報ウィンドウなしのマーカーが 4 つ、情報ウィンドウありのマーカーが 1 つ)。

必要に応じて情報ウィンドウを削除したり閉じたりできるように、各マーカーに ID をどのように追加すればよいでしょうか。

マーカーを設定するために、この関数を使用しています。

function codeAddress(address, contentString) {

var infowindow = new google.maps.InfoWindow({
  content: contentString
});

if (geocoder) {

  geocoder.geocode( { 'address': address}, function(results, status) {

    if (status == google.maps.GeocoderStatus.OK) {

        map.setCenter(results[0].geometry.location);

       var marker = new google.maps.Marker({
          map: map, 
          position: results[0].geometry.location
       });

       infowindow.open(map,marker);

      } else {
       alert("Geocode was not successful for the following reason: " + status);
      }
    });
  }

}

どのように解決するのですか?

JavaScriptは動的な言語です。 オブジェクト自体に追加すればいいのでは?

var marker = new google.maps.Marker(markerOptions);
marker.metadata = {type: "point", id: 1};

また、すべての v3 オブジェクトは MVCObject() . を使うことができます。

marker.setValues({type: "point", id: 1});
// or
marker.set("type", "point");
marker.set("id", 1);
var val = marker.get("id");