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