一部のマーカーをループし、緯度と経度を追加していますが、このエラーが発生し続けます。
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
を使用する場合の違いは何ですか?コンソールでは、自分で入力する場合とまったく同じように見えます。
エラーメッセージはプロパティ 'lat'を指しています。数値ではないものを渡している場合、それは文字列「4.36xxxx」である可能性があるので、それを確認してください。
あなたは試すことができます:
position : {
lat : parseFloat( value.lat ),
lng : parseFloat( value.lng )
},
Google Maps LatLngが必要だと思います。マーカーの位置には通常の数値を使用できません。
Like position = new google.maps.LatLng(lat、lng);