leaflet.js +クラスタリングを使用してOpenPopup()を使用してください

StackOverflow https://stackoverflow.com//questions/9635931

  •  10-12-2019
  •  | 
  •  

質問

今すぐhareのためにFantastic OpenStreetMap Mapping LibleLFlet.jsを使用しています。>このクラスタリングプラグイン。現在のプロジェクトでうまく機能しています。これは、さまざまなレイヤーをマップに、クリック可能なサイドバーにロードします。

唯一の問題は、サイドバー項目をクリックして対応するマーカーがクラスタリングオブジェクトにある場合、エラーが発生します。これを回避しました(Try / Catchを使用)、レイヤーが以下のように表示されるようにエラーを確認しています。

$('.item').click(function() {
    currentlayer = this.id;
...
        try {
            geojson._layers[currentlayer].openPopup();
        } catch(e) {
            map.setView(geojson._layers[currentlayer]._latlng, 16); 
            geojson._layers[currentlayer].openPopup();
        }                   
...
    return false;
});
.

ズーム後にOpenPopup()メソッドを実行しようとしたときに同じエラーが発生した場合、もう一度サイドバーをクリックすると、ポップアップは大丈夫です。あなたはここでそれを行動で見ることができます:

http://www2.lichfielddc.gov.uk/myarea/map2.php

任意のアイデア?

役に立ちましたか?

解決

ええ、私はそのプラグインに関して同じ問題を抱えていました。だから私は自分のものを開発しました。ポップアップを正しく配置する必要があります。私はいくつかのイベントでも構築しているので、クラスタがクリックされたときにいくつかのコードを実行するか、ズームレベルが変化しないようにすることができます。

https://github.com/cavis/leafpile

また、私はあなたのものと同様のプロジェクトに取り組んでいます - https://github.com/cavis/slidemapper。マップ上に続くスライドショーを作成するためのjQueryプラグインです。私は私のLeafpileプラグインを直接統合しています。

他のヒント

zoomToShowLayerを使用してクラスタレイヤーにズームする必要がありました:

https://github.com/leaflet/leaflet.markercluster/issues/75

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top