0
我創建了一個函數來繪製地圖上的一個對象的多個標記。每個標記也被推入一個數組中以便稍後訪問它。google.maps.LatLng返回一個返回'a'的函數。爲什麼?
我createMarker功能看起來像這樣和被調用的initMap功能:
function createMarker(markerData){
for(var i = 0; i < markerData.length; i++){
var testing = new google.maps.LatLng(parseFloat(markerData[i].lat), parseFloat(markerData[i].lng));
console.log(testing);
var marker = new google.maps.Marker({
animation: google.maps.Animation.DROP,
position: new google.maps.LatLng(parseFloat(markerData[i].lat), parseFloat(markerData[i].lng)),
map: myMap
});
markerBounds.extend(marker.position);
markerArray.push(marker);
}
}
但我的問題是,控制檯日誌只返回:
function(){return a}
和而不是預期的經度對象。所以在我的標記數組中,也沒有經緯度座標。但標記仍然在地圖上創建。
後來我想比較markerArray中的每個標記位置與當前用戶位置。但我認爲這是行不通的,因爲上面描述的問題。
for (var i = 0; i < markerArray.length; i++) {
var markerPosition = new google.maps.LatLng(parseFloat(markerArray[i].lat), parseFloat(markerArray[i].lng));
if(google.maps.geometry.spherical.computeDistanceBetween(userPosition, markerPosition) < radius){
console.log('test');
}
}
我做了一個研究,但無法找到答案。我得到的唯一信息是關於異步函數。
我希望你能理解這個問題。 :)
非常感謝。你給了我決定性的提示。我的問題是,我沒有使用lat和lng作爲getter函數。使用.position.lat()我可以得到正確的值。 – mxlnge