2015-01-15 88 views
1

我有以下的代碼,通過谷歌地圖API獲取位置的緯度和經度點擊地圖上我的JavaScript分裂功能不能正常工作

var latitude_longitude = evt.latLng; 

當我提醒使用下面的下面的代碼變量顯示: (53.4128,-1.51165)

alert(latitude_longitude);////Gets latitude and Longitude - Latitude first - Longitude second 

但是我現在需要分割(53.4128,-1.51165)轉換成2個變量的緯度和經度,並用下面的代碼試圖:

var myarr = latitude_longitude.split(","); 
var latitude = myarr[0]; 
alert(latitude); 

但是,警報沒有顯示,我不確定爲什麼?

+1

您是否在控制檯上發現任何錯誤?開發人員工具(適用於IE,Chrome的F12) - >控制檯選項卡 – 2015-01-15 15:43:26

+1

您確定'latitude_longitude'已不是數組嗎? – Pointy 2015-01-15 15:44:17

+0

在警報中,您會看到latLng對象的'toString()'表示。例如,window.toString()會給你「[object Window]」,與alert(window)相同 – CodeToad 2015-01-15 16:09:53

回答

0

你可以試試:

var latitude = evt.latLng.lat(); 
+0

謝謝 - 這工作得很好 – Chris 2015-01-15 16:43:31

0

鑑於此:

var latlng = '53.4128,-1.51165'; 
console.log(latlng); 
var lat = latlng.split(",")[0]; 
console.log(lat); 

我得到的輸出:

53.4128,-1.51165 
53.4128 

於是就逗號分割是完全可行的字符串變量,一個逗號。但是,我懷疑你的latitude_longitude不是一個字符串。打開開發者工具(或者您正在使用的瀏覽器的等價物),設置斷點並檢查變量。我懷疑你會看到它是一個具有屬性的對象,你可以訪問這些屬性而不是試圖解析它的字符串表示。

0

首先檢查,如果你的變量是一個對象或字符串:

alert(typeof latitude_longitude); 

如果您的警報輸出是「對象」,所以你需要將其轉換爲字符串

var strLatLong=String(latitude_longitude); 
var LangLat = strLatLong.split(","); 
alert(typeof strLatLong); 

....這爲我工作