0

我在Google Fusion Table中有一列名爲'xy'的列。每個單元格中的值完全採用以下格式: 30.319067,-97.739454Google標記位置選項:從Google Fusion表中檢索經度和緯度表

我已經創建了這些值的數組,var locationList = []。 嘗試使用此數組並檢索lat,long數據以放入位置選項,但它不識別它。我在下面有一個提醒函數,以查看正在傳遞的內容,並提醒(NaN,NaN)。

for (var i = 0; i < locationList.length ; i++){ 
    if (obj.id == i){ 
     alert(locationList[0]); 

     marker = new google.maps.Marker({ 
      map:Map, 
      position: new google.maps.LatLng(locationList[i]), 
      animation: google.maps.Animation.DROP, 
      zoom: 0}); 

     break;} 


} 

有誰可以告訴我這些值傳遞的是什麼?這是格式問題...?數據類型問題?

我也有我的融合表的「幾何」列的格式爲:

<Point><coordinates>-97.739454,30.319067,0.0</coordinates></Point> 

不知道哪一列適合最好的標記位置。無論哪列,我只想看到那個標記彈起!

感謝您的幫助!


我已經創建了兩個不同的經緯度列,他們在我的Fusion Table中的數字數據類型。數據在數組中var latitudeList = [];和var longitudeList = [] ;.

for (var i = 0; i < numRow ; i++){ 
    if (obj.id == i){ 
     alert(latitudeList[3]); 
     alert(nameList[i]); 

     var LatLng = new google.maps.LatLng(parseFloat(latitudeList[i]),parseFloat(longitudeList[i])); 

     marker = new google.maps.Marker({ 
      map:PuppyMap, 
      position: LatLng, 
      animation: google.maps.Animation.DROP, 
      zoom: 0}); 

     alert([i]); break;} 
}; 

現在我再次使用警報來查看發生了什麼,並警告(latitudeList [0]); 警報(30.23423,NaN),括號中,我不明白。每個單元格的緯度值都以30.xxxxx作爲數字,它們應該以這種方式存在於數組中。 And alert(parseFloat(latitudeList [0]),parseFloat(longitudeList [0])); 提醒NaN。

我想我不知道楠什麼,,,

回答

0

一個google.maps.LatLng object需要兩個數字作爲它的參數,不包含用逗號隔開的兩個數字的字符串。這是不正確的:

marker = new google.maps.Marker({ 
     map:Map, 
     position: new google.maps.LatLng(locationList[i]), 
     animation: google.maps.Animation.DROP, 
     zoom: 0}); 

應該

var coords = locationList[i].split(','); 
    var latlng = new google.maps.LatLng(coords[0], coords[1]); 
    marker = new google.maps.Marker({ 
     map:Map, 
     position: latlng, 
     animation: google.maps.Animation.DROP, 
     zoom: 0}); 

,更安全的是:

var coords = locationList[i].split(','); 
    var latlng = new google.maps.LatLng(parseFloat(coords[0]), parseFloat(coords[1])); 
    marker = new google.maps.Marker({ 
     map:Map, 
     position: latlng, 
     animation: google.maps.Animation.DROP, 
     zoom: 0});; 

從FusionTable未來它是一個字符串。您甚至可以在使用它們構建google.maps.LatLng之前通過測試「isNaN」來驗證它們是有效的數字。

+0

兩個參數!這就說得通了。謝謝! – user2712882

+0

嗨,我爲兩個參數創建了兩個單獨的經緯度列,但無濟於事。我已將我的問題添加到原始帖子中......我非常感謝您的幫助。 – user2712882

+0

你如何查詢FusionTable? latitudeList和longitudeList從哪裏來? – geocodezip

相關問題