web-dev-qa-db-ja.com

Googleマップエラーはlatlngまたはlatlngliteral invalidvalueerrorではありません

一部のマーカーをループし、緯度と経度を追加していますが、このエラーが発生し続けます。

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.latvalue.lngを使用する場合の違いは何ですか?コンソールでは、自分で入力する場合とまったく同じように見えます。

5
twan

エラーメッセージはプロパティ 'lat'を指しています。数値ではないものを渡している場合、それは文字列「4.36xxxx」である可能性があるので、それを確認してください。

あなたは試すことができます:

 position : {
          lat : parseFloat( value.lat ),
          lng : parseFloat( value.lng )
      },
29
dev8080

Google Maps LatLngが必要だと思います。マーカーの位置には通常の数値を使用できません。

Like position = new google.maps.LatLng(lat、lng);

2