【问题标题】:Google maps error not a latlng or latlngliteral invalidvalueerror [duplicate]谷歌地图错误不是 latlng 或 latlngliteral invalidvalueerror [重复]
【发布时间】:2018-04-06 16:49:42
【问题描述】:

我正在循环一些标记并向它们添加纬度和经度,但我不断收到此错误:

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 有什么不同?在控制台中,它看起来与我自己键入的完全一样。

【问题讨论】:

  • 请添加jsfiddle

标签: javascript jquery google-maps


【解决方案1】:

错误信息指向属性'lat';你传递的不是数字,它可能是字符串“4.36xxxx”,所以检查一下。

你可以试试:

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

【讨论】:

  • 非常感谢!这样就完成了。
  • 不适合我
【解决方案2】:

我认为您需要 Google Maps LatLng。标记的位置不能只取正常数字。

点赞位置 = new google.maps.LatLng(lat,lng);

【讨论】:

  • 但是当我输入纬度和经度而不是 value.lat 或 value.lng 时,它可以工作。所以它应该只适用于数字。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 2019-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-06
  • 2020-03-30
相关资源
最近更新 更多