今回は百度地図でマーカーやポリラインを表示する際の注意事項をご紹介します。
最近、Baidu Map APIを使用したプロジェクトに取り組んでいますが、地図上にマーカーとポリラインを同時に表示する必要があり、ポリラインはクリックに基づいて表示または消去する必要があるため、指定されたものを消去するという問題が発生しました。 オーバーレイを色々検索しても見つかりませんでした 私自身の考えを通して、この問題を解決する方法を見つけて、みんなと共有するために投稿しました。さて、本題に入りましょう:
オーバーレイをクリアするには 2 つの方法があります: map.removeOverlay() または map.clearOverlays() メソッドはすべてのオーバーレイを一度に削除し、removeOverlay() メソッドは削除します。指定されたオーバーレイ、明らかに一度にポリライン オーバーレイのクラスを削除したいのですが、どちらの方法も機能しません。
Baidu デモ (http://developer.baidu.com/map/jsdemo.htm#c1_17) には、次のような RemoveOverlay() の例があります。
function deletePoint(){ var allOverlay = map.getOverlays(); for (var i = 0; i < allOverlay.length -1; i++){ if(allOverlay[i].getLabel().content == "我是id=1"){ map.removeOverlay(allOverlay[i]); return false; } } }
は、すべてのオーバーレイを走査することによって、削除するオーバーレイをフィルター処理します。
カバーの種類を削除するには、カバーを追加するときに制限を設定できます。
ステップ 1: カバーを追加するときに、削除する必要のないカバーに対して disableMassClear() を設定します。は次のとおりです
disableMassClear()
none は、map.clearOverlays メソッドでオーバーレイをクリアすることを禁止します。 (1.1 から追加されました)
ここではマーカーを削除する必要がないので、設定は次のとおりです:
marker.disableMassClear();
ステップ 2: クリアするオーバーレイをここですべてクリアする必要があります。マーカーをクリアせずに、直接使用できるようになります
map.clearOverlays();
この方法で、すべてのポリラインを簡単にクリアしてマーカーを保持できます
ステップ 3: 後でマーカーを削除する必要がある場合は、 EnableMassClear() メソッド。クリアを無効にします。
enableMassClear()
none は、map.clearOverlays メソッドでオーバーレイをクリアできます。 (1.1 以降追加)
ただし、各マーカーは復元する必要があるため、それを通過する必要があります:
var allOverlay = map.getOverlays(); for (var i = 0; i < allOverlay.length; i++) { allOverlay[i].enableMassClear(); }
これにより、すべてのオーバーレイのクリア可能な操作が復元されます。
簡単な 3 ステップのセットアップで、指定されたタイプのカバーを効率的に操作できます。
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
JavaScriptトライプレフィックスツリーの使用方法の詳細な説明
以上がBaidu マップにマーカーとポリラインを表示するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。