2

だから私は地理位置情報プロジェクト(asp.net MVC4)で働いています。データベースに多くの位置があり、それをマップに表示したいのですが、スクリプトが最初の位置を表示するだけの問題です。これが私のスクリプトです:

var checkpoints = [];
function setMarkers(map, locations) {

for (var i = 0; i < locations.length; i++)
{
    var place = locations;
    for (var i = 0; i < place.length; i++)
    {
        var points = new google.maps.LatLng(place[i][1], place[i][2]); 
        checkpoints.push(points);
    }

    var check = checkpoints[0];
    var index = 0;
    for (var j = 0; j < checkpoints.length; j++)
    {
            check = checkpoints[j];
            index = j;
            var myLatLng = new google.maps.LatLng(place[index][1], place[index][2]);    

            var marker = new google.maps.Marker
                (
                    {
                        position: myLatLng,
                        map: map,
                        title: place[index][0],
                        zIndex: place[index][3]
                    }
                );
    }
}
return marker;
}

誰かが解決策やアイデアを持っていれば、私はとても感謝しています。

@david @Beetroot-Beetroot @razzak に感謝します。私のスクリプトは正常に動作するようになりました。これが私の新しいスクリプトです。

var checkpoints = [];
function setMarkers(map, locations) {

for (var i in locations) {
    var points = new google.maps.LatLng(locations[i][1], locations[i][2]);
    checkpoints.push(points);
    var marker = new google.maps.Marker({
        map: map,
        position: points,
        title: locations[i][0],
        zindex: locations[i][4]
    });
}
}

更新: スクリプトは正常に動作しますが、イベントに小さな問題があります。マーカーを dblclick すると、彼のタイトルが表示されるはずですが、最後のマーカーのタイトルが表示されるだけです:

var checkpoints = [];
function setMarkers(map, locations) {

for (var i in locations) {
    var points = new google.maps.LatLng(locations[i][1], locations[i][2]);
    checkpoints.push(points);
    var marker = new google.maps.Marker({
        map: map,
        position: points,
        title: locations[i][0],
        zindex: locations[i][4],
    });
    //this is my event
    google.maps.event.addListener(marker, 'dblclick', function () {
        alert("I am marker " + marker.title);
    });
 }
}
4

3 に答える 3

1

私はあなたのコードを簡素化しました

function setMarkers(locations) {
    for(var i in locations) {
    var points = new google.maps.LatLng(locations[i][1].lat,locations[i][2].lng);
    checkpoints.push(points);
    var marker = new google.maps.Marker({
     map:map,
     position: points,
     icon: 'myicon.png',//
     title: locations[i][0],
     zindex: locations[i][4]
    }); 

   } 
}
于 2013-04-21T13:05:57.473 に答える