2016-01-11 5 views
-1

Я не могу понять, почему следующие данные, которые я получил от JSON, не добавляются в Карты Google, но прокомментированный, который имеет жестко закодированные vaules. Может ли кто-нибудь давать какие-либо советы или предлагать метод поместить несколько маркеров на карту из данных json?Javascript Google Maps Markers

var obj = JSON.parse(JSON.stringify(respData));  
for (var k in obj) { 
    var myLatLng = { 
    lat: parseFloat(obj[1].latitude), 
    lng: parseFloat(obj[1].longitude) 
    };      
    //var myLatLng = {lat: 46.7693924, lng: 23.5902006}; 
    var marker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    title: 'Hello World!' 
    }); 
} 
+2

Несколько вопросов. Почему вы подчеркиваете, а затем разбираете какой-то JSON? 'JSON.parse (JSON.stringify (respData))' бессмысленно. Второй: цикл 'for..in' проходит через ключи в объекте. Почему вы делаете это, но никогда не используете ключ 'k'? –

+0

Вы запустили свой код в отладчике, если у myLatLng есть значения, которые вы ожидаете? –

+0

Добавьте 'console.log (obj)' в before 'var myLatLng' и убедитесь, что' obj' - это то, что вы ожидали. Добавление этих данных в вопрос поможет получить ответ. Это ваше намерение получить доступ к второму элементу массива, или вы должны использовать 'obj [0] .latitude'? – olan

ответ

0

Попробуйте это:

var obj = JSON.parse(JSON.stringify(respData)); 
console.log(obj); 
for (var k in obj) { 
    var myLatLng = { 
    lat: parseFloat(obj[k].latitude), 
    lng: parseFloat(obj[k].longitude) 
    };      
    //var myLatLng = {lat: 46.7693924, lng: 23.5902006}; 
    var marker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    title: 'Hello World!' 
    }); 
} 

и скажите нам, что консоль говорит

+0

Это не сработает. 'k' - это строка, а не объект, содержащий' широта' и 'долгота'. –

+0

хорошо, если вы сообщите нам, что говорит консоль, когда я зарегистрировал obj, я был бы в состоянии помочь - и у вас есть эта информация, если она истинна. – gegillam

+0

Это правда. [Это всегда правда] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in). Вот как работает 'for..in'. Но вы правы в том, что видеть содержимое «obj» было бы полезно. –

0

Похоже, что значение, которое я давал был вне диапазона ... Я должен освежить по географии.