0

私が作成したマップには、ポリゴンで囲まれた複数のエリアがあります。ユーザーがセクションの上にマウスを置くと、カスタム マーカーがポップアップ表示され、マウスを離すとマーカーが消えます。すべてが機能していますが、マウスアウトでマーカーを非表示にする方法がわかりません。以下のコードはすべてのセクションではありませんが、1 つのセクションがどのように機能するかを示すだけで十分な情報が得られることを願っています。私は Maps API と JavaScript に少し慣れていないので、最初の部分を正しく設定したいと思っていますが、何か提案があれば幸いです。どうにかして noMarker 関数のマーカーにアクセスする必要があると考えています...

    //Sets up the polygon    
    var mapWC = new google.maps.Polygon({
        paths: coordsWC,
        strokeColor: "#14b400",
        strokeOpacity: 0.5,
        strokeWeight: 3,
        fillColor: "#14b400",
        sectionName: "West Cambridge",
        markerImage: 'images/hood-marker.png',
        markerLL: new google.maps.LatLng(42.3751819960975,-71.15445431301595),
        fillOpacity: 0.33
        });

     mapWC.setMap(map);

//Mouse in and out
     google.maps.event.addListener(mapWC, 'mouseover', showMarker);
     google.maps.event.addListener(mapWC, 'mouseout', noMarker);

//functions
function showMarker(){
//var secName = this.sectionName;
//console.log(secName);
var image = this.markerImage;
var myLatLng = this.markerLL;
var themarker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image
});
} // End showMarker

function noMarker(){
//console.log("Moused Out");                
}
4

1 に答える 1

1

次のような javascript の先頭で宣言されているマーカーへの変数参照を保持します。var marker;

私のJSフィドルを参照してください:マウスオーバーとアウトでマーカーを表示および非表示にする

編集:ポリゴンの代わりに法線マップを使用してこれを示したことに気付きました-しかし、ポリゴンは同じイベントをサポートしているように見えるため、同じコードが機能するはずです。ここのリストを参照してください: google maps api polygon events

さて、ポリゴンを使用する場合の例を次に示します: JS fiddle polygon、トリックはマーカーを実際のポリゴンオブジェクトに保存して、アクセスしやすいようにすることです。少なくともそれは私が思うことです:) - また、複数のポリゴンを追加したい場合は、保存してみてくださいそれらはすべて、グローバル ポリゴン変数ではなく、配列内にあります ;) 乾杯!

于 2013-03-13T16:18:37.977 に答える