2011-07-21 13 views
9

Quiero convertir una cadena con un patrón como "(53.324523, 43.252352)" en un latlng. Ya encontré la función correcta:Convertir cadenas a latlng google maps

var input = latlngArray[i]; 
var latlngStr = input.split(",",2); 
var lat = parseFloat(latlngStr[0]); 
var lng = parseFloat(latlngStr[1]); 
latlngArray[i] = new google.maps.LatLng(lat, lng); 

El problema es que no puedo obtener un lat adecuado. Cuando uso la alerta para mostrarla, solo dice NaN, mientras que la variable lng muestra el valor correcto.

Lo tengo. Thx por la ayuda.

var input = latlngArray[i].substring(1, latlngArray[i].length-1); 
var latlngStr = input.split(",",2); 
var lat = parseFloat(latlngStr[0]); 
var lng = parseFloat(latlngStr[1]); 
latlngArray[i] = new google.maps.LatLng(lat, lng); 
+0

qué eliminar '(' y ')' – Bolu

+0

Ya pensó que podría? ser algo así. Supongo que necesito buscar una función que los borre. – OhSnap

Respuesta

1

Solución rápida después de la entrada var. Parece que el '(' está arruinando la conversión Lat:

input = input.replace('(',''); 
+0

Tenga en cuenta que su solución asume que el '(' siempre está en la posición 0. El espacio en blanco al principio romperá su código. t realmente necesita eliminar el final ')' porque el primer carácter en la cadena de análisis es un número, por lo tanto, todos los caracteres restantes en las cadenas se ignoran. – TreyA

0

Una solución general puede ser:

var locationToStringed = "(53.324523, 43.252352)"; 
var input = locationToStringed.replace('(', ''); 
var latlngStr = input.split(",", 2); 
var lat = parseFloat(latlngStr[0]); 
var lng = parseFloat(latlngStr[1]); 
var parsedPosition = new google.maps.LatLng(lat, lng);