2014-09-23 64 views
1

一切都應該很好,但不是。沒有控制檯錯誤,沒有。我的對象結果在控制檯中正確顯示,如果手動輸入座標,我的標記設置正確。Gmaps LatLng不會讀取我的數據

但是,如果我將數據傳遞給LatLng與我的對象,零結果。

這在控制檯返回 「46.00,45.00」:

var data = jQuery.parseJSON(data); 
console.log(data[0].coords); 

,這建立了我的標誌爲谷歌地圖:

var latLng = new google.maps.LatLng(46.00,45.00); 
var marker = new google.maps.Marker({ 
    position: latLng, 
    map: map 
}); 

BUT!如果我把它寫像這樣的事情發生:

var data = jQuery.parseJSON(data); 

var latLng = new google.maps.LatLng((data[0].coords)); 
var marker = new google.maps.Marker({ 
    position: latLng, 
    map: map 
}); 

回答

5

你只是傳遞一個參數與data[0].coords爲字符串,當你需要通過2個參數爲數字,如documentation規定:

LatLng(lat:number, lng:number, noWrap?:boolean) 

你需要分割的coords變量之前:

var coordinates = data[0].coords.split(","); 
var latLng = new google.maps.LatLng(coordinates[0], coordinates[1]); 
+1

或者...'變種的latLng =新google.maps.LatLng.apply(NULL,數據[0] .coords.split( 「」));' – 2014-09-23 08:31:06

+0

@FlorianMargaine噸帽子不太可讀。此外,它可能會打破一些優化。 – 2014-09-23 08:31:59

+0

@FlorianMargaine多數民衆贊成在多精確,謝謝 – 2014-09-23 08:33:12

1

你完全傳遞data.coords[0]對象到新google.maps.LatLng

你應該分裂緯度和經度和下面通過。

var data = jQuery.parseJSON(data); 

var latLng = new google.maps.LatLng(data[0].coords[0],data[0].coords[1]); 
var marker = new google.maps.Marker({ 
    position: latLng, 
    map: map 
});