この記事では、Baidu Maps API に基づいて指定されたオーバーレイ (Overlay) をクリアする方法を主に共有します。これは良い参考値であり、皆様のお役に立てれば幸いです。編集者をフォローして見てみましょう。皆さんのお役に立てれば幸いです。
最近、Baidu Map API を使用したプロジェクトに取り組んでいたのですが、地図上にマーカーとポリラインを同時に表示する必要があり、ポリラインはクリックに基づいて表示または消去する必要がありました。そのため、問題が発生しました。指定されたオーバーレイをクリアする方法について、いろいろ調べても完璧な解決策が見つからなかったので、私なりの考えでこの問題を解決する方法を見つけたので、皆さんと共有するために投稿しました。さて、本題に入りましょう:
オーバーレイをクリアするには 2 つのメソッドがあります。map.removeOverlay() または map.clearOverlays() メソッドは一度にすべてのオーバーレイを削除し、removeOverlay() メソッドは指定されたオーバーレイを削除します。明らかに、一度に 1 つのクラスのポリライン オーバーレイを削除したいのですが、どちらの方法も機能しません。
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()
none メソッドを使用してクリアの禁止を解除できます。 map.clearOverlays メソッドでオーバーレイをクリアできるようにします。 (1.1 以降追加)
ただし、各マーカーは復元する必要があるため、それを通過する必要があります:
var allOverlay = map.getOverlays(); for (var i = 0; i < allOverlay.length; i++) { allOverlay[i].enableMassClear(); }
これにより、すべてのオーバーレイのクリア可能な操作が復元されます。
簡単な 3 ステップのセットアップで、指定されたタイプのカバーを効率的に操作できます。
関連する推奨事項:
jquery tools シリーズ オーバーレイ learning_jquery
jquery_jquery の下にオーバーレイ マスク レイヤー コードを実装する
以上がBaidu地図APIで指定されたオーバーレイをクリアする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。