Googleマップマーカーに問題があり、解決する方法が見つかりません。
特定のノードを表示する GMap モジュールで生成されたマップページビューがあります。また、マップ内に表示される同じノードのいくつかを、フォーマットされていないリストで表示するビューブロックもあります。私が必要なのは、リスト上のノードをマップ内のそれぞれのマーカーに関連付けることです(そのため、リストにカーソルを合わせると、マーカーアイコンが変更されます)。
(明らかに)マーカー座標と一致するノードの正確な座標を取得しているため、ノードをマーカーに関連付けることができます。私の問題は、マップ上の既存のマーカーのリストを取得する方法がわからないことです。
私が読んだものから、マーカーが生成されたときに配列内のマーカーをプッシュする必要があるので、後で配列内の要素を使用してマーカーにアクセスできますが、gmapがマーカーを生成する場所を見つけることができませんでした。私はグローバル配列を作成し、_gmap_marker.js
_内のマーカーをプッシュしようとしました:
_obj.bind('addmarker', function (marker) {
// ... //
mymarker.Push(marker.marker);
}
_
でも私はどんな結果も見ることができます。 _countmarkers += 1;
_などで生成されたマーカーをカウントしようとしましたが、出力も0です。
誰か手がかりがあり、これを達成できますか?任意のアドバイスをいただければ幸いです。
編集:わかりました、私はこの問題を解決しました。私がしたことは問題なく、問題はプロセスのタイミングにありました。私は呼びました:
_mymarkers.forEach(function(marker) { //funciona OK alert(marker.getPosition().lat() + ' - ' + marker.getPosition().lng()); });
_
setTimeout(function(){});
内で10ミリ秒の遅延。遅延を5000ミリ秒に増やすと、すべてのマーカーに十分な時間が作成され、マーカー配列に最終的にアクセスできます。
これは、マッピングモジュールの Comparison からの引用です。
GMapはレガシーモジュールと見なされます。
IP Geolocation Views&Maps モジュールを見たいと思うかもしれません。プロジェクトページからの部分的な引用:
その名前が示唆していることにかかわらず、IP Geolocation Views&Maps(IPGV&M)は何よりもまずマッピングエンジンです。
このモジュールにより、選択したマップレンダラーを使用してビューベースのマッピングソリューションを非常に簡単に作成できます(Google、 OpenLayersまたはLeaflet)選択した任意の場所のストレージモジュール、たとえば:
これにより、IPGV&Mなしでは組み合わせることができないモジュールと機能セットを組み合わせることができます。
GoogleやBing、Mapboxでの美しいアニメーション マーカーのクラスタリングのように... さまざまな マッププロバイダーのいずれか 。
しかし、より重要なことに、IPGV&Mには、他の場所では便利にパッケージ化されていない機能がいくつか追加されています。
これらには、フィールド値または範囲に基づく マーカーの区別 (2番目のスクリーンショット)、フォントアイコンの有無にかかわらず、さまざまな中央揃えオプションがあり、現在の訪問者の場所を重ね合わせて、複数のコンテンツタイプを同じマップ、全画面ボタンとミニマップインセット(下部のスクリーンショット)、ポリゴンサポート(ジオフィールド)、マーカータグとツールヒント、およびマーカーがホバーされたときのページ上の関連コンテンツのクロスハイライト(およびその逆)に表示されます。
その(印象的な)プロジェクトページにアクセスして、さらに詳しい情報を入手してください(ここにすべてを引用するのは長すぎます)。そのプロジェクトページには、さまざまなスクリーンショットも含まれています。