谷歌地图错误不是latlng或latlngliteral invalidvalueerror

时间:2017-10-25 14:29:13

标签: javascript jquery google-maps

我正在循环一些标记并为它们添加一个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.latvalue.lng时会有什么不同?在控制台中,它看起来完全一样,就像我自己输入一样。

2 个答案:

答案 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);