2

Firefox 20.0 の Google マップ (v3 を使用) (Google Chrome では問題なく動作) で数日または数週間前から問題が発生しましたが、以前は問題なく動作していました。マーカーを動的にロードする(Ajax を使用してデータベースからロードする) と、コンソール (Firebug) に次のように表示されます。

IndexSizeError: Index or size is negative or greater than the allowed amount
(102 out of range 43)

スケーリング画像とのリンクがあると思いましたが(この投稿を見ました)、そうではないようです。MarkerImage の 2 番目と 5 番目のパラメーターで、他の幅と高さを設定しようとしました。同じエラー。

編集: ScaledSize を正確に指定しない場合、エラーは発生しないことに気付きました。これは、Firefox が写真のサイズを変更できないことを意味しますが、... 必要があります。:(

たくさんのコードがあり、マーカーが読み込まれているときにエラーがコンソールに表示されるので、ここではそれに対応するコードを示します。

$.each(data, function(i) {
    // Where "data" is the json result of my ajax call
    var largeur = 80 + (20 * (map.getZoom() - 9));
    var ratio = largeur / 80;
    var hauteur = 56.8 * ratio;

    var marker = new google.maps.Marker({
        map: map,
        icon: new google.maps.MarkerImage("../images/realisations/" + data[i].image,
           new google.maps.Size(largeur, hauteur),
           new google.maps.Point(0, 0),
           new google.maps.Point(0, 0),
           new google.maps.Size(largeur, hauteur)
        ),
        position: new google.maps.LatLng(data[i].latitude, data[i].longitude),
        title: data[i].title
    });
});

Url :こちら(ページ下部の api)

>> 黒いナビゲーションで、「Réalisations」というラベルのチェックボックスをクリックします。コンソールでエラーが発生します。

ブラウザ:

  • Firefox 20.0:エラー...
  • Google Chrome 26.0 :動作します
  • IE 9:動作します
  • Safari 5.1.7 :動作します
  • Opera 12.14 :動作します

誰かが私を助けることができますか?

4

2 に答える 2

1

私は同じ問題を抱えていましたが、いくつかの調査と簡単な回避策の後、この頭痛を解決することができました.

これが私がしたことです。

これをFFで機能させるには、「サイズ」と「スケールサイズ」の両方の属性を設定する必要があるようです。しかし、その後、私を悩ませたことがもう1つありました。「サイズ」属性をアイコンの元のサイズに設定すると、アイコンは拡大縮小されましたが、アイコン全体が表示されずに突然トリミングされました-おそらくサイズ制限のためです。

そのため、「サイズ」属性をスケーリングされた画像の最大制限(私の場合は64)に設定すると、魅力的に機能しました。

                   cObject.setIcon({
                        url: cObject.getIcon().url,
                        scaledSize: new google.maps.Size(icoSize, icoSize-1),
                        size:new google.maps.Size(64, 64)
                    });

于 2014-04-08T15:06:27.263 に答える