そのエラーの原因と解決策を見つける方法がわかりません...
プロジェクト の下での作業:
http://atlas.sitegist.net/business/atlas/?l=en&h=6dff16b6f593384662cb24d66142047a
プロジェクトでは、整数値でさまざまなデータを表示し、それらすべてをマップにも表示します。新しいデータセットの別の視覚化を追加すると、エラーが発生します。
ほとんどの場合、UIでいくつかのイベントを実行する必要があります。もちろん、以下にリストされているいくつかの混合を実行する必要があります。
5分でエラーが発生することがあります。最初のショットで時々、しかしほとんどの場合3-4UIリクエストで。
上記のリンクは、最初から、または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」も使用していません。
bounds変数に問題が見つかりました。
サーバーから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;
同じエラーが発生しました。しかし私の場合、問題は緯度と経度のデータに関係していました。この問題が発生したのは1ドット不足でした。
関連: https://groups.google.com/forum/?fromgroups=#!topic/google-maps-js-api-v3/1SCjxGntr
このエラーは通常、(Google Chromeで)allminimumを設定し忘れた場合に発生しますマップのオプション。それらは次のとおりです。
var map = new google.maps.Map(
document.getElementById( 'some-id' ),
{
center : new google.maps.LatLng( 43, 16 ),
zoom : 10,
mapTypeId : google.maps.MapTypeId.ROADMAP
}
);
ポリゴンパスに空のLatLngが含まれていますか?
これが発生したときに同じエラーを受け取りました-愚かな間違いですが、同様の状況で誰かを助けるかもしれません。