2

描画したポリゴンで選択したときのマーカーアイコンを変更したい。addMarker()では、マーカーがJSONデータから解析され、allMarkers配列にプッシュされます。アイコンは、選択されていない場合は赤で、選択されている場合は白になります。

function addMarker(lat,lng,i){
    var myLatlng = new google.maps.LatLng(lat,lng);
    var marker = new google.maps.Marker({
        position: myLatlng,
        icon: "http://labs.google.com/ridefinder/images/mm_20_red.png",
        map: map
    });
    marker.shapeId = '0';
    allMarkers.push(marker);    
}   


function selectMarkersInPoly() {
    alert(allMarkers.length)
    for (var i=0; i < createdShapes.length; i++) {
        for (var j=0; j < allMarkers.length; j++){
            var latlong = allMarkers[j].getPosition();
            if(google.maps.geometry.poly.containsLocation(latlong, createdShapes[i]) == true) {
                allMarkers[j].shapeId = createdShapes[i].id;
                allMarkers[j].setOptions({
                    icon : "http://labs.google.com/ridefinder/images/mm_20_white.png"
                });
            }
        }
    }   

}

selectMarkersInPoly()の何が問題になっていますか?ご協力ありがとうございました?

4

1 に答える 1

7

これは、javascript匿名オブジェクトの正しい構文ではありません。

allMarkers[j].setOptions({
                icon = "http://labs.google.com/ridefinder/images/mm_20_white.png"
            });

(javascriptコンソールでjavascriptエラーが発生すると思います)これは機能するはずです:

allMarkers[j].setOptions({
                icon: "http://labs.google.com/ridefinder/images/mm_20_white.png"
            });
于 2012-12-17T15:42:34.673 に答える