Ich suche nach einer Möglichkeit, Text auf der Leaflet-Karte mit Markierungen oder anderen Elementen anzuzeigen, ohne ein Symbol anzuzeigen. Ich möchte nur Text anzeigen und in der Lage sein, ihn zu stylen und zu drehen ... Irgendwelche Vorschläge?
Ich suche nach einer Möglichkeit, Text auf der Leaflet-Karte mit Markierungen oder anderen Elementen anzuzeigen, ohne ein Symbol anzuzeigen. Ich möchte nur Text anzeigen und in der Lage sein, ihn zu stylen und zu drehen ... Irgendwelche Vorschläge?
Antworten:
Ich habe mein Problem mit der Leaflet L.DivIcon-Funktion gelöst, die ein leichtes Symbol für Markierungen darstellt, bei dem ein einfaches div-Element anstelle eines Bilds verwendet wird. Diese Markierungen haben eine HTML- und eine className-Option, mit der ich Etiketten mit CSS-Laufwerk erstellen kann Stile ...
Update für Leaflet 1.0: Ab Leaflet 1.0 ist das Leaflet.label-Plugin veraltet, da es im Leaflet-Core als enthalten ist L.Tooltip
. Es ist nicht erforderlich, das Quellenskript einzuschließen, und die Syntax hat sich geringfügig geändert. Beispielnutzung:
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-Stil kann auf die gleiche Weise wie zuvor auf die Klasse angewendet werden.
.my-label {
position: absolute;
width:1000px;
font-size:20px;
}
Es scheint auch, dass die Markierungsopazität vollständig auf 0 gesetzt werden kann.
<script src="scripts/leaflet.label.js"></script>
Mit dem Leaflet Label-Plugin werden Beschriftungen direkt mit Markierungen verknüpft. Sie können jedoch die Deckkraft der Markierung auf nahezu Null setzen, sodass nur die Beschriftung sichtbar ist. (Wenn Sie die Deckkraft des Markers auf 0 setzen, wird die zugehörige Bezeichnung ebenfalls ausgeblendet.)
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);
Sie können dann CSS verwenden, um Ihre Etiketten nach Ihren Wünschen zu gestalten:
.my-label {
position: absolute;
width:1000px;
font-size:20px;
}
L.Tooltip
inside onEachFeature wird folgender Fehler angezeigt: "Uncaught TypeError: 'appendChild' konnte auf 'Node' nicht ausgeführt werden: Parameter 1 ist nicht vom Typ 'Node'."
.toString()
am Ende eine anhängen . marker.bindTooltip(feature.properties['prabhag_number'].toString(), {...
Sie können hier mit diesem Leaflet-Plugin beginnen . Erstellen oder bearbeiten Sie wahrscheinlich einen Marker nach Ihren Wünschen. Kommt der Text von Feature-Attributen?
marker.bindTooltip("text here", { permanent: true, offset: [0, 12] });
Das funktioniert bei mir