0

OSM マップがあり、leafletjs を使用しています。

マーカー用のカスタム ポップアップを作成しました。それは正常に正しく動作します。

marker.bindPopup(strMsg,{className: 'myPopup'});

このコードは完全に機能します。

ここで、同じポップアップを作成したいのですが、Multilopygon をクリックします。ポリゴンのデータは geoJSON から取得されます。これは私がこの問題のために書いたコードです

var c_park = L.geoJson(data[i].geom, {
            style: myStyle
            });
           c_park.bindPopup("strMsg",{className: 'myPopup'});
           map.addLayer(c_park);

問題は、myPopup クラスがマルチポリゴンのポップアップに対して機能せず、その結果、ネイティブのポップアップ ウィンドウが表示されることです。ブラウザでクラスを手動で変更しても問題ありません。

さまざまな方法を試しました。Fe は関数 onEachFeature を使用してポップアップを初期化します。しかし、何も機能しません。

誰が問題が何であるか知っていますか?

4

1 に答える 1

0

誰が問題が何であるか知っていますか?

問題はない。ClassName は、L.icon のオプションとしてマーカーにサポートされています。(ドキュメント)。

Polygon は、ClassName ( docs )を含まない polyline と path のオプションを継承します。

私の見方では、2つの可能性があります。

  1. リーフレットをフォークし、className オプションをポリゴンに追加します。
  2. bindPopup をオーバーロードすることにより、オプションとして className を取るポリゴンを継承するサブクラスを作成します。
于 2013-06-10T16:15:24.927 に答える