2011-07-21 43 views
9

我想將一個類似於「(53.324523,43.252352)」的字符串轉換爲latlng。我已經找到了正確的功能:將字符串轉換爲latlng google地圖

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

問題是我無法得到一個合適的經緯度。當我使用alert來顯示它時,它只表示NaN,而lng變量顯示正確的值。

明白了。 Thx尋求幫助。

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

你刪除'('和')' – Bolu

+0

我已經認爲它可能?我想我需要尋找一個刪除它的函數 – OhSnap

回答

1

無功輸入後快速修復。看起來像「(」被搞亂了經緯度轉換:

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

請注意,你的解決方案假定'('總是在位置0上。在開始的空白處會破壞你的代碼。另外,因爲分析字符串中的第一個字符是一個數字,所以字符串中所有剩餘的字符都被忽略,所以確實需要刪除尾部的')。 – TreyA

0

一個通用的解決方案可以是:

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