3

これは私を困惑させました、そして私は2番目の目が問題を指摘することができることを望んでいます。私の抽象化ライブラリはさらに複雑さを増していることに気づきましたが、他の誰かがそれらの実装で似たようなものを見たかもしれないと思っていました。私はまた、これを可能な限り単純で対象を絞ったケースに要約しようとしました。

問題は、Google Maps APIを介して作成およびマップに追加され、ドラッグ可能として設定されたマーカーをドラッグできないことです。これは以前は問題なく機能していましたが、ライブラリのどこかで行った変更により、この機能が壊れました。再現するには、http://www.nps.gov/npmap/support/library/examples/map-defaults.html?api = googleにアクセスし、ブラウザのWeb開発コンソールに次のコードを貼り付けます。

var marker = new google.maps.Marker({
  position: NPMap.Map.Google.map.getCenter(),
  draggable: true,
  map: NPMap.Map.Google.map
});

マーカーはドラッグ可能である必要がありますが、そうではありません。

いくつかの注意:

  • マーカーは引き続きクリック可能であり、すべてのマーカーイベント(マウスオーバーなど)が正常に機能しているようです。
  • 編集可能としてマップに追加された線とポリゴンは正常に機能します
  • マップdivと他のいくつかの要素をいじってみz-indexましたが、これは問題を引き起こしていないようです
  • GoogleMapsAPIの現在のリリースバージョンであるv3.11を読み込んでいます。フリーズバージョン3.10とエクスペリメンタルバージョンv3.12でテストしましたが、どのバージョンをロードしても問題は解決しません。

どんな助けでも大歓迎です!

更新:奇妙な。追加されたマーカーdraggable: trueはクリックできないようです。ただし、マーカーを指定せずに追加するdraggable: trueと、クリックできるように見えます。これはおそらく関連しているようです。

更新2:最初の更新のフォローアップ:マップで作成され、マップに追加されたマーカーでイベントが機能していません。draggable: trueこれをテストするためのマーカーを作成した後、次のコードを実行できます。

google.maps.event.addListener(marker, 'click', function(e) {
  console.log(e);
});
4

1 に答える 1

2

理解した。私はデフォルトのGoogleマップコントロールのいくつかをハックするためにこのようなことをしていました:

var els = document.getElementsByClassName('gmnoprint');

for (var i = 0; i < els.length; i++) {
  els[i].style.display = 'none';
}

これは過去にドラッグ可能なマーカーに影響を与えていませんが、GoogleはMaps APIに変更を加え、gmnoprintドラッグ可能なマーカーにクラスを追加し始めたに違いありません。まあ、それは私が文書化されたAPIの外に出るために得るものです。

于 2013-03-26T22:27:58.600 に答える