13

找不到导致该错误的原因,以及如何找到解决方案...

在项目下工作:

http://atlas.sitegist.net/business/atlas/?l=en&h=6dff16b6f593384662cb24d66142047a

在项目中,我用整数值显示不同的数据,所有这些数据也显示在地图上。当我添加新数据集的另一个可视化时,会发生错误。

测试信息:

大多数情况下,我必须在 UI 中做一些事件,当然还要做一些下面列出的混合:

  • 必须单击“项目”按钮,然后在我的项目的工具栏部分选中/取消选中复选框
  • 必须单击左侧边栏面板上的事件(无需展开折叠,对于给定的数据集,对象的选择是通过选择父项进行的)

有时错误会在 5 分钟内发生。有时在第一个镜头中,但通常在 3-4 UI 请求中。

上面的链接从开始或通过 2-3 个事件触发器重现错误。

错误:从控制台复制粘贴

我在 Chrome 控制台中遇到了这样的错误:

Uncaught RangeError: Maximum call stack size exceeded
H.get
(anonymous function)
Mu.(anonymous function).zoomRange_changed
yf
H.set
(anonymous function)
Mu.(anonymous function).zoomRange_changed
yf
H.set
(anonymous function)
Mu.(anonymous function).zoomRange_changed
yf
...
H.set
(anonymous function)
Mu.(anonymous function).zoomRange_changed
yf

还有一个:

<error>
(anonymous function)
$
nm
Du
H.bf
H.mapType_changed
yf
H.set
H.aa
Tg.(anonymous function).J
(anonymous function)
Q.trigger
H.aa
Tg.(anonymous function).J
(anonymous function)
Q.trigger
H.aa
Tg.(anonymous function).J
(anonymous function)
Q.trigger
H.aa
...
H.aa
Tg.(anonymous function).J
(anonymous function)
Q.trigger

解决方案下的解决方案对我没有帮助,因为缺乏有关 I.set 的信息,而且我不使用“Gmaps4rails”:

Gmaps4rails 超出最大调用堆栈大小?

4

4 回答 4

8

解决了!!!

我在边界变量中发现了一个问题。

当我从服务器接收 JSON 时,在解析它时,代码会从地图上的每个位置绑定。

// renew map bounds each time when new query comes
bounds = new google.maps.LatLngBounds ();
...
for (var key in data.locations ) {
    ...
    // For fitting in Bounds, we push the positions of each location
    atlas.Map.vars.bounds.extend ( new google.maps.LatLng(
        data.locations [key].lat,
        data.locations [key].lng
    ) );    
    ...
}
...
GoogleMap.fitBounds (bounds);

不知何故,对于新的数据类型,它会使浏览器堆栈溢出。

(很奇怪,因为它可以正常工作以获得更大的结果!(600< 地图上的元素))。

为快速结果制作了一个粗略的代码:

bounds = new google.maps.LatLngBounds ();
if( KMLLayer.poly.docs[0].bounds != undefined ) {
    bounds.extend( KMLLayer.poly.docs[0].bounds.getNorthEast() );
    bounds.extend( KMLLayer.poly.docs[0].bounds.getSouthWest() );
}
if( KMLLayer.marks.docs[0].bounds != undefined ) {
    bounds.extend( KMLLayer.marks.docs[0].bounds.getNorthEast() );
    bounds.extend( KMLLayer.marks.docs[0].bounds.getSouthWest() );
}
GoogleMap.fitBounds (bounds);

我有两个 KML 层,所以我从 GeoXML3 层检索了边界(如果有的话)。

该死的,我花了6小时38分钟!!!

也许我对这一行有误,严重清除了全局变量:

bounds = new google.maps.LatLngBounds ();

变量的原始名称有点长:) bounds === atlas.Map.vars.bounds;

于 2013-04-19T07:38:48.053 回答
7

我收到了同样的错误。但是在我的情况下,问题与经纬度数据有关。少了一个点导致了这个问题。

相关:https ://groups.google.com/forum/?fromgroups=#!topic/google-maps-js-api-v3/1SCjxGntruU

于 2012-09-26T13:10:54.693 回答
4

当您忘记为地图设置所有 最小选项时,通常会发生此错误(在 Google Chrome 中)。这些是:

var map = new google.maps.Map(
    document.getElementById( 'some-id' ),
    {
        center :    new google.maps.LatLng( 43, 16 ),
        zoom :      10,
        mapTypeId : google.maps.MapTypeId.ROADMAP
    }
);
于 2013-09-13T01:30:55.303 回答
0

您的多边形路径是否包含任何空的 LatLng?

发生这种情况时我收到了同样的错误 - 愚蠢的错误,但可能会帮助处于类似情况的人。

于 2013-04-11T12:04:26.847 回答