アイコンのないリーフレットマップにテキストのみのラベルを追加する方法


22

アイコンを表示せずにマーカーなどを使用して、リーフレットマップにテキストを表示する方法を探しています。テキストのみを表示し、スタイルを設定して回転できるようにしたい...提案はありますか?


1
@NikhilVJ-そのQ&Aは、対応するマーカーがない状態でツールチップを使用する方法については説明していません。答えここでは、持っている方法について説明だけ目に見えるマーカーで、テキストを。
ToolmakerSteve

ああ、ごめんなさい、悪い
Nikhil VJ

回答:


19

画像の代わりにシンプルなdiv要素を使用するマーカーの軽量アイコンを表すLeaflet L.DivIcon機能を使用して、問題を解決しました...スタイル...


11
このためのコードを少し提供してもらえますか?
マストフ

ラベルとマーカーをしたい場合は、この答えは考えではありません
ロイ

@Roy-それは別の状況です。L.Tooltipを参照してください。ラベル(ツールチップ)を常に表示する場合は、オプションpermanentをtrueに設定します。
ToolmakerSteve

16

Leaflet 1.0の更新: Leaflet 1.0以降、Leaflet.labelプラグインは廃止されましたL.Tooltip。これは、Leafletコアにとして含まれているためです。ソーススクリプトを含める必要はなく、構文はわずかに変更されています。サンプル使用法:

var marker = new L.marker([39.5, -77.3], { opacity: 0.01 }); //opacity may be set to zero
marker.bindTooltip("My Label", {permanent: true, className: "my-label", offset: [0, 0] });
marker.addTo(map);

CSSスタイリングは、以前と同じ方法でクラスに適用できます。

.my-label {
    position: absolute;
    width:1000px;
    font-size:20px;
}

また、マーカーの不透明度が完全に0に設定されているようです。


リーフレット1.0前: 使用Leaflet.labelプラグイン(すでにgeomajor56で述べました)。

<script src="scripts/leaflet.label.js"></script>

Leaflet Labelプラグインを使用すると、ラベルはマーカーに直接結び付けられますが、マーカーの不透明度をほぼゼロに設定して、ラベルのみが表示されるようにすることができます。(マーカーの不透明度を0に設定すると、関連するラベルも消えます。)

var marker = new L.marker([39.5, -77.3], { opacity: 0.01 });
marker.bindLabel("My Label", {noHide: true, className: "my-label", offset: [0, 0] });
marker.addTo(map);

その後、CSSを使用して、ラベルを適切にスタイル設定できます。

.my-label {
    position: absolute;
    width:1000px;
    font-size:20px;
}

<script src = "scripts / leaflet.label.js"> </ script>-この行をHTMLに追加した後、ページが空白に見えました。ファイルをダウンロードする必要がありますか?
マルチンコシスキ

@MarcinKosiński-はい、投稿のGitHubリンクからleaflet.label.jsをダウンロードし、スクリプトという名前のWebサイトのサブフォルダーに配置する必要があります。または、コード内のURLを、leaflet.github.io / Leaflet.label / leaflet.label.jsにあるホストされているファイルに置き換えることができます(CSSファイルが必要な場合があります。同じ名前と場所、異なる拡張子)。
キース

私はこれをしようとしましたが、背景と境界線を削除する方法はありますか?snag.gy/JdnpyV.jpg
WantIt

L.TooltiponEachFeatureの内部で使用する場合、「Uncaught TypeError:Failed to execute 'appendChild' on 'Node':parameter 1 is not type 'Node'」というエラーが表示されます。
ニヒルVJ

解決された、私はテキストとして機能のプロパティの1つを使用してい.toString()た、最後に追加する必要がありました。marker.bindTooltip(feature.properties['prabhag_number'].toString(), {...
ニヒルVJ

4

このLeafletプラグインでここから開始できます。好みに合わせてマーカーを作成または編集してください。テキストはフィーチャ属性から来ていますか?


これは、質問とは異なる質問に答えます。これは、既存のマーカーにラベル追加する方法です。それはラベルだけを持つ方法についての説明ではありません -マーカー記号はありません。
ToolmakerSteve

0
marker.bindTooltip("text here", { permanent: true, offset: [0, 12] });

これは私のために働く


これは、質問とは異なる質問に答えます。これは、既存のマーカーにラベル追加する方法です。それはラベルだけを持つ方法についての説明ではありません -マーカー記号はありません。
ToolmakerSteve
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.