2014-11-12 12 views
-1

Я пытаюсь преобразовать широчайшие длинную строку (53.3603, -6,315050000000042) в картах Google объект в этом формате: B: -6,26747649999993 к: 53,339251Преобразовать Lat длинную строку в Google Maps API LatLng Object

У меня есть использовал эту функцию, которая работает в течение долгого времени, но возвращает Nan для lat.

function getLatLngFromString(ll) { 
     var lat = ll.replace(/\s*\,.*/, ''); // first 123 
     var lng = ll.replace(/.*,\s*/, ''); // second ,456 
     var locate = new google.maps.LatLng(parseFloat(lat), parseFloat(lng)); 
     return locate; 
    } 
    ; 

Я храню лат долго в HTML тег, как это называется в виде списка, подключенного к карте. Он сохраняется здесь в правильном формате, однако, когда я извлекаю его с помощью jQuery .attr, он преобразует его в строку.

var location = $(this).closest('.allList').attr("position"); 

Любая помощь была бы принята с благодарностью.

ответ

9

Предполагая LAT/LNG строка выглядит как "10,5, -0,51"

function getLatLngFromString(ll) { 
    var latlng = ll.split(/, ?/) 
    return new google.maps.LatLng(parseFloat(latlng[0]), parseFloat(latlng[1])); 
} 

должны работать

+0

Спасибо. Однако он все еще возвращает k: NaN, B: -6.315050000000042,. –

+0

Были скобки вокруг края, которые попадали. Используется это: function getLatLngFromString (location) { var latlang = location.replace (/ [()]/g, ''); var latlng = latlang.split (','); //console.log(latlang); locate = new google.maps.LatLng (parseFloat (latlng [0]), parseFloat (latlng [1])); return locate; } –

+0

Вы спасли мой день! Благодарю. –

Смежные вопросы