Leaflet: GeoJson pointerEvents = 'none'任意の効果

作成日 2017年02月03日  ·  4コメント  ·  ソース: Leaflet/Leaflet

  • [X]助けを求めるのではなく、バグを報告しています
  • [X]動作が文書化され、期待されていることを確認するために文書を調べました
  • [X]これはLeafletコードの問題であり、自分のコードや使用しているフレームワーク(Cordova、Ionic、Angular、React…)の問題ではないと確信しています。
  • [X]問題を検索して、まだ報告されていないことを確認しました

再現する方法

  • 私が使用しているリーフレットバージョン:1.0.3
  • 使用しているブラウザ(バージョンあり):Chrome 55
  • OS /プラットフォーム(バージョンあり)使用しているもの:Windows

私が期待している行動と私が見ている行動

2つのGeoJsonオーバーレイを表示する必要があります。1つはユーザーと対話できる(クリック、マウスオーバー)、もう1つは視覚情報を表示するためだけの非対話です。
最初のレイヤーは2番目のレイヤーの下にあり、ストロークのみを描画する必要があります。

2番目のレイヤースタイルに「pointerEvents」をnoneに指定しましたが、LeafLetはこのプロパティを使用しません。生成されたsvgにはこのプロパティがありません。

問題を再現する最小限の例

  • [X]この例は可能な限り単純です
  • []この例はサードパーティのコードに依存していません
var interactiveLayer = L.topoJson(epci2014TopoJson, {
        style: function (feature) {
            return {
                weight: 0.0,
                fillOpacity: 0.7,
                color: 'rgb(200,200,200)',
                fillColor: getColor(feature.properties.siren_epci || feature.properties.SIREN_EPCI)
            }
        },
        onEachFeature: function (feature, layer) {
            layer.on({
                mouseover: highlightFeature,
                mouseout: resetHighlight,
                click: zoomToFeature
            });

        }
    }).addTo(map);

    var justForDrawLayer=L.geoJson(departementsGeoJson, {
        style: function (feature) {
            return {
                pointerEvents : 'none',
                clickable:false,
                weight: 3,
                fillOpacity: 0.0,
                color: 'rgb(220,220,220)'
            }
        }
    }).addTo(map);

「クリック可能」を「false」に変更しようとしましたが、変更はありません。

私の英語が十分に正しくない場合はすみません。 ありがとう。

http://playground-leaflet.rhcloud.com/または他のjsfiddleのようなサイトを使用します。

最も参考になるコメント

interactive:false 」で試してみましたが、動作します。
申し訳ありませんが(コミュニケートを求めて)、幸せです(それが機能するため)。

どうも。

全てのコメント4件

2番目のレイヤースタイルに「pointerEvents」をnoneに指定しましたが、LeafLetはこのプロパティを使用しません

ええと、 pointerEventsL.Pathの認識されたオプションではないので、何を期待していたのかわかりません。

「クリック可能」を「false」に変更しようとしましたが、変更はありません。

このオプションは、1.0.0で名前をinteractiveに変更しました。ドキュメントの「インタラクティブレイヤーから継承されたオプション」を参照してください。

ご返信ありがとうございます。

「pointerEvents」の場合:ユーザーインタラクションに対してレイヤーを「非アクティブ」にすることができなかったため、ここに示す例に従うようにしました:ペインのhttp://leafletjs.com/examples/map-panes/ geoJsonレイヤーに適用されるpointerEvents。 多分私はこの概念を誤解しました。

geojsonスタイルのinactiveプロパティを試してみます。

私の目標は、いくつかの小さな国(ポリゴン)を階級区分図として表示することです。 このレイヤーの下には、タイルレイヤーなど、より大きな国を表示する別のgeojsonレイヤーがあり、それぞれが小さな国の「コンテナ」です。 このオーバーレイには、内側が完全に透明なポリゴンストロークのみが表示されるようにしたいと思います。 「小さな国」のオーバーレイはユーザーと対話し、「大きな国」のレイヤーは対話しないようにします。

どうも

interactive:false 」で試してみましたが、動作します。
申し訳ありませんが(コミュニケートを求めて)、幸せです(それが機能するため)。

どうも。

2つのレイヤーをレンダリングするのと同じタスクがあり、最上位のレイヤーは非アクティブになっているはずです。 「 interactive:false 」が役に立ちました、ありがとう!

このページは役に立ちましたか?
0 / 5 - 0 評価