1

私はしばらくの間、素晴らしい OpenStreetMap マッピング ライブラリ leaflet.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

何か案は?

4

2 に答える 2

2

ええ、私はそのプラグインで同じ問題を抱えていました。そのため、ポップアップを正しく配置する必要がある独自のものを開発しました。また、いくつかのイベントを作成しているので、クラスターがクリックされたときにコードを実行したり、ズーム レベルの変更を防止したりできます。

https://github.com/cavis/leafpile

また、私はあなたと同様のプロジェクトに取り組んでいます - https://github.com/cavis/slidemapper。これは、地図上をたどるスライドショーを作成するための jquery プラグインです。私はleafpileプラグインを直接それに統合することに取り組んでいます。

于 2012-07-15T17:13:48.300 に答える
0

たぶんあなたは以下を使ってクラスターレイヤーにズームしなければならなかったでしょうzoomToShowLayer

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

于 2012-12-05T05:43:49.840 に答える