Google Maps API V3 - нужна помощь с несколькими маркерами - PullRequest
2 голосов
/ 24 июня 2010

Я довольно новичок в Google Maps, поэтому наберитесь терпения!

Мой код работал нормально, пока я не попытался добавить несколько маркеров, был бы очень признателен, если бы кто-нибудь взглянул на него и увидел, что я что-то упустил ...

$(function() {

    var map_markers = [ [ [52.951946], [1.018124] ], [ [52.955311], [0.987997] ] ]; 

    var options = {
        zoom: 13,
        center: latlng,
        mapTypeControl: false,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };          
    var map = new google.maps.Map(document.getElementById('map_canvas'), options);


    //markers               
    for (var i = 0; i < map_markers.length; i++) {
        var m =         map_markers[i];
        var myLatLng =  new google.maps.LatLng(m[0], m[1]);
        var marker =    new google.maps.Marker({
            position: myLatLng,
            map: map

        });
    }
})

1 Ответ

2 голосов
/ 24 июня 2010

Ваша проблема в том, как вы инициализировали массив map_markers.Вы, вероятно, должны делать следующее:

var map_markers = [[52.951946, 1.018124], [52.955311, 0.987997]];

В противном случае с вашим map_markers вам пришлось бы ссылаться на него следующим образом:

var m =         map_markers[i];
var myLatLng =  new google.maps.LatLng(m[0][0], m[0][1]);

Давайте разберем ваш map_markersмассив, который поможет вам понять проблему:

var map_markers = [ [ [52.951946], [1.018124] ], [ [52.955311], [0.987997] ] ];

console.log(map_markers[0]);
//  [[52.951946], [1.018124]]   

Object.prototype.toString.call(map_markers[0]);
// "[object Array]"

console.log(map_markers[0][0]);
//  [52.951946]                  

Object.prototype.toString.call(map_markers[0][0]);
// "[object Array]"

console.log(map_markers[0][0][0]);
//  52.951946                    

Object.prototype.toString.call(map_markers[0][0][0]);
// "[object Number]"

Поэтому проблема, с которой вы столкнулись, сводится к тому, что параметры, передаваемые в конструктор google.maps.LatLng(), были Array вместо Number.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...