【问题标题】:Google Maps Error: Uncaught InvalidValueError: setIcon: not a string; and no url property; and no path property谷歌地图错误:未捕获的 InvalidValueError:setIcon:不是字符串;并且没有 url 属性;并且没有路径属性
【发布时间】:2014-12-18 20:23:08
【问题描述】:

我今天刚开始在 Google 地图上遇到此错误:

未捕获的 InvalidValueError: setIcon: not a string;并且没有 url 属性;并且没有路径属性

几个月来我没有更改任何代码。

此页面发生错误: http://gusmodern.com/pages/store-locator

以前有人遇到过这种情况吗?

【问题讨论】:

  • 首先加载 maps-API 的发布版本(目前您加载的是实验版本)。 V3-release-version 的 URL 始终为 https://maps.googleapis.com/maps/api/js?v=3

标签: javascript jquery google-maps


【解决方案1】:

我更新到具体版本参考https://maps.googleapis.com/maps/api/js?v=3&sensor=true,错误消失了。我的多个地理定位网站和移动应用程序都有此功能。

【讨论】:

  • 是的,它也对我们有用。 Google 似乎最近更新了他们的地图库。
  • 我再次遇到同样的错误,不知道为什么。以上解决方案不再有效。
【解决方案2】:

我最近在一些代码中遇到了同样的错误。多亏了过去的另一个问题,我意识到当我设置标记时,我需要确保我为锚和缩放大小带来的变量是浮点数,而不是作为字符串输入。这必须是最近更新的新要求。

在我自己的代码中我改变了

currentIcon = {
            url: 'http://www.example.com/img/avatars/'+name+'.png',
            origin: new google.maps.Point(0, 0),
            anchor: new google.maps.Point(aw,ah),
            scaledSize: new google.maps.Size(w,h)
        };

currentIcon = {
            url: 'http://www.example.com/img/avatars/'+name+'.png',
            origin: new google.maps.Point(0, 0),
            anchor: new google.maps.Point(parseFloat(aw),parseFloat(ah)),
            scaledSize: new google.maps.Size(parseFloat(w),parseFloat(h))
        };

它现在对我来说很好用。

【讨论】:

  • 这应该是解决方案。 +1
【解决方案3】:

这两天我也遇到了这个问题。就我而言,我在地图上设置了一个带有 null 参数的 MarkerImage。这意味着我在地图上隐藏了标记。

这在以前有效:

markers = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location,
                icon: new google.maps.MarkerImage(null)
            });

现在这似乎是解决方案:

markers = new google.maps.Marker({
                map: map,
                position: results[0].geometry.location
            });
            markers.setVisible(false);

希望这会有所帮助。祝你好运!

【讨论】:

  • 这将隐藏整个标记。如果您只想隐藏图标:var nullIcon = { url: '', size: new google.maps.Size(0, 0), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(0, 0) }; var marker = new google.maps.Marker({ icon: nullIcon, ...
【解决方案4】:

我在将图标作为 MarkerWithLabel{} 的属性时遇到了同样的问题。

解决方案:

var nullIcon = { url: '', size: new google.maps.Size(0, 0), origin: new google.maps.Point(0, 0), anchor: new google.maps.Point(0, 0) };

【讨论】:

    猜你喜欢
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    相关资源
    最近更新 更多