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

そしてもう1つ:

<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レイヤーが2つあるので、境界が発生した場合は、GeoXML3レイヤーから境界を取得しました。

くそー、私はそれのために6時間38分を費やします!!!

たぶん私はこの行で間違っていました、グローバル変数をひどくクリアするもの:

bounds = new google.maps.LatLngBounds ();

変数の元の名前は少し長くなります: )bounds=== atlas.Map.vars.bounds;

于 2013-04-19T07:38:48.053 に答える
7

同じエラーが発生しました。ただし、私の場合、問題は緯度と経度のデータに関係していました。この問題が発生したのは1ドット不足でした。

関連: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 に答える