2013-10-15 3 views
-1

по щелчку google map у меня есть lat и long.then, я пытаюсь разбить его, но он не работает.
когда я предупреждаю входную переменную, она отображает lat и long.but, когда i alert(latlngStr[0]) ничего не предупреждает.не работает в javascript?

google.maps.event.addListener(map, 'click', function(e) { 
placeMarker(e.latLng, map); 
var input=e.latLng;alert(input); 
var latlngStr = input.split(',',2);alert(latlngStr[0]); 
var lat = parseFloat(latlngStr[0]); 
var lng = parseFloat(latlngStr[1]); 
var latlng = new google.maps.LatLng(lat, lng); 
}); 
+0

Что дает предупреждение (ввод)? –

+0

http://stackoverflow.com/a/15315483/74585 –

+0

Ваш синтаксис для разделения кажется прекрасным. однако вам не нужно использовать input.split (',', 2). Это может быть input.split (','); – MarsOne

ответ

1

Так, принимая входы от комментариев Shakib в ваш код в идеале должен быть следующим

google.maps.event.addListener(map, 'click', function(e) { 
placeMarker(e.latLng, map); 
var input=e.latLng; alert(input); 
var lat = input.lat(); 
var lng = input.lng(); 
var latlng = new google.maps.LatLng(lat, lng); 
}); 

Рассмотрите возможность использования console.log() вместо предупреждения();

+0

спасибо, человек .. это сработало. Но я не понимаю причину этого .beacause' e.latlong' обеспечивают lat и long оба , так почему он не разделен? – DS9

+1

Потому что это объект. String.split работает над строками. Alert выдаст что угодно. Вот почему лучше использовать console.log, где вы можете точно увидеть тип создаваемой переменной - это объект, массив или строка. :) – MarsOne

+0

Если решение помогло вам не забыть отметить его как ответ;) – MarsOne

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