我正在循环一些标记并为它们添加一个lat和long,但我不断收到此错误:
message
:
"not a LatLng or LatLngLiteral: not an Object"
name
:
"InvalidValueError"
并且:
InvalidValueError: setPosition: not a LatLng or LatLngLiteral: in property lat: not a number
这是我的循环:
var bedrijvenlijst = []; // new array
$.each( bedrijven, function( key, value ) {
// console.log( key + ": " + value.plaats );
console.log(value.lng);
bedrijvenlijst.push({
title : value.title,
image : 'bbvdw.jpg',
address : value.straat + ' ' + value.plaats,
position : {
lat : value.lat,
lng : value.lng
},
markerIcon : 'marker-green.png'
}); // new item added in array
});
当我登录日志时,lng或lat只显示为正常数字,如:
4.23626
为什么会出现此错误?如果我只是在循环中自己键入坐标,它可以正常工作,那么使用value.lat
和value.lng
时会有什么不同?在控制台中,它看起来完全一样,就像我自己输入一样。
答案 0 :(得分:15)
错误消息指向属性' lat&#39 ;;你传递的不是数字,可能是字符串" 4.36xxxx",所以检查一下。
你可以尝试:
position : {
lat : parseFloat( value.lat ),
lng : parseFloat( value.lng )
},
答案 1 :(得分:1)
我认为您需要Google Maps LatLng。你不能只为标记的位置取正常数字。
喜欢position = new google.maps.LatLng(lat,lng);