2011-07-21 4 views
9

Je veux convertir une chaîne avec un motif comme "(53.324523, 43.252352)" en un latlng. J'ai déjà trouvé la bonne fonction:Convertir la chaîne en 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); 

Le problème est que je ne peux pas obtenir un lat approprié. Quand j'utilise l'alerte pour l'afficher, il ne dit que NaN, alors que la variable lng affiche la bonne valeur.

Vous l'avez. Merci pour l'aide.

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

Avez-vous retiré '(' et ')' – Bolu

+0

je l'ai déjà pensé que ce pourrait? Je suppose que j'ai besoin de chercher une fonction qui les supprime – OhSnap

Répondre

1

Correction rapide après l'entrée var. On dirait que le '(' est chambouler la conversion lat:

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

Notez que votre solution suppose que le '(' est toujours à la position 0. Les espaces blancs au début briseront votre code. Il faut vraiment enlever le '' 'final' car le premier caractère de la chaîne d'analyse est un nombre, donc tous les caractères restants dans les chaînes sont ignorés. – TreyA

0

Une solution générale peut être:

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); 
Questions connexes