33

私は、リーフレットマルチポリゴンオブジェクトを使用したかなり一般的なユースケースであると私が想像することを試みています。

geojsonを使用してMultiPolygonを作成します。

var layer = L.GeoJSON(g, style_opts);

私が欲しいのは、各ポリゴンの中央に簡単なテキストラベルを配置することです。(たとえば、各州の中央に州名を配置するようなものです)。

私が見たのは: https ://groups.google.com/forum/?fromgroups =#!topic / leaflet-js / sA2HnU5W9Fw

これは実際にはテキストをオーバーレイしますが、ポリゴンの束を追加すると、ラベルが奇妙な方法で中心から外れているように見え、現在問題を突き止めることができません。

私も見ました:https ://github.com/jacobtoye/Leaflet.label

ただし、これは、ポリゴンの上にマウスを置いたときにのみポリゴンにラベルを付けるように見え、ポリゴンに静的に留まることはありません。

私の最善の行動は、最初のリンクを使用して、場所が変更された理由を突き止めることだと思いますが、それまでの間、リーフレットのポリゴンにラベルをすばやく簡単に配置する方法を知っている人がいれば、多くの義務があります。

また、上記の2つのリンクについて誤った仮定がある場合は、遠慮なく私を正してください。

よろしくお願いします。

4

2 に答える 2

22

リーフレット ラベル プラグインでは、静的ラベルも使用できます。デモを参照してください。ポリライン ラベルが静的ではない唯一の理由は、ポリラインに沿って移動するとラベルが移動することです。

ポリゴンの bindLabel() をオーバーライドすることで、おそらくこれよりもうまくいく可能性がありますが、これはポリゴンの中心に静的ラベルを追加する簡単な方法です。

label = new L.Label()
label.setContent("static label")
label.setLatLng(polygon.getBounds().getCenter())
map.showLabel(label);

http://jsfiddle.net/CrqkR/6/

于 2013-01-13T22:09:32.283 に答える