Как я могу заставить эту переменную работать внутри google.maps.LatLng () - PullRequest
0 голосов
/ 10 ноября 2011

Я создал функцию, которая перебирает набор возвращаемых JSON. Затем мне нужно отобразить данные, полученные из JSON, внутри google.maps.LatLng (). Дело в том, что когда я пытаюсь это сделать, мне просто возвращают ноль, и я не могу понять, почему.

Вот моя функция JS

function addNew(json) {
if(json.length > 0) {
    for(var i = 0; i < json.length; i++) {

        var callback = function(object) {
            return function(results, status) {

                    var location = new google.maps.LatLng(object.latlong);

                    var image = '/img/markers/' + object.energyrating + '.png';
                    var marker = new google.maps.Marker({
                        map: map,
                        position: location,
                        icon: image
                    });
            };
        }(json[i]);

        geocoder.geocode({ 'address': address }, callback);
    }
} else {
    alert("Sorry, no data was found.");
}
};

Однако, если я просто верну object.latlong самостоятельно, он будет работать нормально. Просто не нравится, когда он внутри LatLng (). Это потому, что он уже был установлен до загрузки JSON?

Ответы [ 2 ]

1 голос
/ 10 ноября 2011

Итак, ваш object.latlong выглядит как '51 .5381031, 0.0495182', что является строкой.Вам нужно передать два числа в функцию google.maps.LatLng ().Это должно быть просто, я бы предложил использовать .split (), чтобы превратить его в массив из двух элементов.

var latlng = object.latlong.split(",");
var location = new google.maps.LatLng(latlng[0], latlng[1]);
0 голосов
/ 10 ноября 2011

Я могу ошибаться, но я думаю, object.latlong - это массив, так что вы хотите сделать это так:

var location = new google.maps.LatLng(object.latlong[0], object.latlong[1]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...