Quindi ho un layer geojson in leaflet e posso aggiungere oggetti geojson a questo layer per la visualizzazione sulla mappa risultante.come aggiungere testo per la visualizzazione su mappa a un oggetto geojson nel volantino
Ora mi piacerebbe aggiungere un'etichetta di testo da visualizzare vicino all'oggetto.
Questo esempio mostra l'uso di un oggetto personalizzato L.control()
per visualizzare informazioni aggiuntive sulla mappa. Che sembra vicino a quello che voglio fare.
Dato questo esempio, vorrei aggiungere etichette di testo iniziali dello stato (ad esempio "TX", "FL") posizionate su ogni stato. È possibile utilizzare L.control()
per farlo oppure esiste un altro modo?
http://leaflet.cloudmade.com/examples/choropleth.html
var info = L.control();
info.onAdd = function (map) {
this._div = L.DomUtil.create('div', 'info'); // create a div with a class "info"
this.update();
return this._div;
};
// method that we will use to update the control based on feature properties passed
info.update = function (props) {
this._div.innerHTML = '<h4>US Population Density</h4>' + (props ?
'<b>' + props.name + '</b><br />' + props.density + ' people/mi<sup>2</sup>'
: 'Hover over a state');
};
info.addTo(map);
Ciao Mathias e Grazie per l'ottimo codice. Non sono così familiare con javascript e HTML. Hai un file html + javascript completo che posso usare? tnx. – Ash
Ciao. Questo è grandioso ma non centra l'etichetta. Ho elaborato questo jquery per l'esecuzione di un evento mossa. Potresti anche considerare di visualizzarli su un mapend dopo averli nascosti su un movestart in modo che non sembrino strani quando il resto della mappa si ridimensiona. $ (". Leaflet-label-overlay").each (function (i) { $ (this) .css ("font-size", Math.pow (2, map.getZoom())/2000 + "%") .css ("margin-left" , - $ (this) .width()/2) .css ("margin-top", - $ (this) .height()/2); }); } –
(alterare il 2000 a piacere.Puoi anche usare la tecnica per nascondere le etichette con zoom basso o alto, o per modificarne l'audacia ecc.) –