Come aggiungere etichette di solo testo sulla mappa depliant senza icona


22

Sto cercando un modo per mostrare il testo sulla mappa dei volantini usando gli indicatori o qualsiasi altra cosa senza mostrare alcuna icona. Voglio mostrare solo il testo ed essere in grado di modellarlo e ruotarlo ... Qualche suggerimento?


1
@NikhilVJ - Quella D&R non discute su come avere una descrizione comandi senza un marcatore corrispondente. Le risposte qui discutono su come avere solo il testo, senza marcatore visibile.
— ToolmakerSteve

ah scusa mio cattivo
— Nikhil VJ

Risposte:


19

Ho risolto il mio problema utilizzando la funzione Leaflet L.DivIcon che rappresenta un'icona leggera per i marcatori che utilizza un semplice elemento div anziché un'immagine ... Questi marcatori hanno un html e un className che mi consentono di creare etichette con css driven stili ...


11
Ti dispiacerebbe fornire un po 'di codice per questo?
— mastov,

Questa risposta non è idea se si desidera un'etichetta E un marcatore
— Roy

@Roy - questa è una situazione diversa; Vedi L.Tooltip . Se si desidera che l'etichetta (la descrizione comandi) venga sempre visualizzata, impostare l'opzione permanente su true.
— ToolmakerSteve

16

Aggiornamento per Leaflet 1.0: A partire da Leaflet 1.0, il plug-in Leaflet.label è obsoleto, poiché è stato incluso con il core Leaflet come L.Tooltip. Non è necessario includere lo script di origine e la sintassi è leggermente cambiata. Esempio di utilizzo:

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);

Lo stile CSS può essere applicato alla classe come prima.

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

Sembra anche che l'opacità del marker possa essere impostata completamente su 0.


Prima di Leaflet 1.0: utilizzare il plug-in Leaflet.label (già menzionato da geomajor56).

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

Con il plug-in Leaflet Label, le etichette sono direttamente legate ai marker, ma è possibile impostare l'opacità del marker quasi a zero in modo che sia visibile solo l'etichetta. (Se si imposta l'opacità del marcatore su 0, anche l'etichetta associata scompare.)

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);

È quindi possibile utilizzare i CSS per modellare le etichette come meglio credi:

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

<script src = "scripts / leaflet.label.js"> </script> - Dopo aver aggiunto questa riga al mio HTML la pagina sembrava vuota. Devo scaricare qualche file?
— Marcin Kosiński,

@ MarcinKosiński - Sì, dovrai scaricare leaflet.label.js dal link GitHub nel post e metterlo in una sottocartella del tuo sito web denominata script. In alternativa, puoi sostituire l'URL nel codice con il file ospitato su leaflet.github.io/Leaflet.label/leaflet.label.js (potresti anche volere il file CSS; stesso nome e posizione, stessa estensione).
— Keith

ho provato a farlo ,,, hai idea di come rimuovere lo sfondo e il bordo? snag.gy/JdnpyV.jpg
— WantIt il

Quando si utilizza L.Tooltipinside onEachFeature, viene visualizzato l'errore: "Uncaught TypeError: Impossibile eseguire 'appendChild' su 'Node': il parametro 1 non è di tipo 'Nodo'."
— Nikhil VJ,

Risolto, stavo usando una delle proprietà della funzione come testo, dovevo aggiungere .toString()a alla fine. marker.bindTooltip(feature.properties['prabhag_number'].toString(), {...
— Nikhil VJ,

4

Puoi iniziare qui con questo plug-in Leaflet . Probabilmente crea o modifica un marker a tuo piacimento. Il testo proviene dagli attributi della funzione?


Questo risponde a una domanda diversa da quella che è stata posta. Ecco come aggiungere un'etichetta a un marcatore esistente ; si tratta non è una spiegazione su come avere solo un'etichetta - nessun simbolo marcatore.
— ToolmakerSteve

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

Questo funziona per me


Questo risponde a una domanda diversa da quella che è stata posta. Ecco come aggiungere un'etichetta a un marcatore esistente ; si tratta non è una spiegazione su come avere solo un'etichetta - nessun simbolo marcatore.
— ToolmakerSteve
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.