9

BingMapsで大きな問題に直面しています。私が使用しているもの: http ://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v = 6.3

まず、firebugで次のようなエラーが発生します:

 this.CreditsFor=function(a,i,j,h)
 {
  var e=[];
  if(a!="undefined"&&a!=null&&typeof m_tableKeys[a]!="undefined"&&
   ........
   MVC_Init_FlatlandView_Drawing();
   MVC_Init_View3D_Drawing()};
   if(typeof closeDependency!="undefined")
       closeDependency("mapcontrol.js")

その後、try-catchブロック内に.LoadMap()呼び出しを配置し​​ました。例外をスローしていました:

p_elSource.attachEventは関数ではありません

私はすでにmsdnフォーラムで推奨されている次のソリューションを試しました:

  • LoadMap()を呼び出す前に、VEMapOptions.BirdseyeOrientationのデフォルト値を設定する
  • DOCTYPEが存在することを確認しました

これは、firebugが有効になっている場合にのみ発生します。

4

1 に答える 1

10

ゼノ、

FF4を使用していますか?FF4で問題が発生しました。これは、スクリプトがまだ定義されていないVE関数を呼び出している競合状態が原因でした。私はここで解決策を得ました。

特に、Josh Ungerが、setIntervalを使用して補助ライブラリがロードされるのを待ってそれを実行することを説明している回答に注意してください。

var interval = setInterval(function() {
    if (eval("typeof VEMap") != "undefined" &&
        document.getElementById("map").attachEvent != undefined)   
    {
        clearInterval(interval);
        LoadMap();
    }
}, 10);

状況に合わせてサンプルコードを更新する必要があります。重要な部分は、VEスクリプトがロードされ、補助ライブラリがロードされたことを確認するまで、VEで何も呼び出さないようにすることです。

最近、FF4を使用している人から問題が報告されました。FF3と比較したFF4の何か(おそらくスクリプトの実行が速いか、スクリプトの実行時間の違い)がエラーを引き起こしたのではないかと思います。いずれにせよ、ライブラリがロードされるまでVEの呼び出しを遅らせるようにコードを更新すると、エラーはなくなり、マップは正しく機能しました。

私は遅延読み込みを行っておらず、Firebugは問題ではないことに注意してください。スレッドが2008/2009にアクティブだったとき、これらは明らかに要因でした。

于 2011-04-13T16:13:59.510 に答える