Salve, sto andando un po' in confusione e mi servirebbe una mano, forse la
problematica è banale ed evidentemente c'è qualcosa che mi sfugge. Premetto che sono abituato ad usare Leaflet in cui labeling ed applicazione degli stili è un po' più semplice. Ho alcuni vettori appartenenti a tutte e tre le primitive geometriche che devo far comparire in una webmap. Sono riuscito a caricarli come GeoJson e ad applicare il tematismo che mi interessa anche usando il reverse engineering da una webmap esportata da qgis2web. Prendiamo il caso generico dello stradario, il cui codice per lo stile è questo: /var stradarioStyle = function(feature, resolution){ var value = ''; if ("" !== null) { labelText = String(""); } function stradarioStyle_settings(feature, value) { var context = { feature: feature, variables: {} }; if (stradario_stradeprovinciali(context)) { return [ new ol.style.Style({ stroke: new ol.style.Stroke({color: '#d67800', lineDash: null, lineCap: 'round', lineJoin: 'miter', width: 20}), })]; } else if (stradario_stradecomunali(context)) { return [ new ol.style.Style({ stroke: new ol.style.Stroke({color: '#fff', lineDash: null, lineCap: 'round', lineJoin: 'miter', width: 20}), })]; } else if (stradario_straderurali(context)) { return [ new ol.style.Style({ stroke: new ol.style.Stroke({color: '#4b280e)', lineDash: null, lineCap: 'round', lineJoin: 'miter', width: 20}), })]; } } var style = stradarioStyle_settings(feature, value); ; return style; };/ Se in /labelText =/ aggiungo /feature.get('toponimo')/ al posto di quello che c'è ora per far comparire nome della strada, il risultato è che non accade nulla. Ho provato pure a dare uno sguardo qui[0] ma non mi è stato molto d'aiuto. Sapreste darmi qualche indicazione? __________ [0] https://openlayers.org/en/latest/examples/vector-labels.html ----- Ingegnere, consulente GIS e ciclista urbano -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 796 iscritti al 28/12/2017
Consulente GIS, Formatore, Blogger e Ciclista Urbano
email: info@massimilianomoraca.it
cell: 333 5949583 (lun-ven, 9.00-18.00)
website: massimilianomoraca.it
|
Soluzione trovata
Dovevo sostituire a: / if ("" !== null) { labelText = String(""); } / Questo: / if (feature.get("toponimo") !== null) { labelText = String(feature.get("toponimo")); }/ Ora non mi resta che capire come giocare con zIndex per fare in modo che i nomi siano sempre in primo piano. Se avete consigli sono tutto occhi :) ----- Ingegnere, consulente GIS e ciclista urbano -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 796 iscritti al 28/12/2017
Consulente GIS, Formatore, Blogger e Ciclista Urbano
email: info@massimilianomoraca.it
cell: 333 5949583 (lun-ven, 9.00-18.00)
website: massimilianomoraca.it
|
Il problema sembrava risolto ma non era così...
Ho cambiato strategia: /var toponimi_igm_geoportaleStyle = new ol.style.Style({ image: new ol.style.Circle({ radius: 1, fill: new ol.style.Fill({color: 'rgba(99, 90, 90, 1.0)'}), stroke: new ol.style.Stroke({color: '#000', width: 2}), }), text: new ol.style.Text({ text: feature.get('toponimo'), font: '12px Calibri,sans-serif', fill: new ol.style.Fill({color: '#000'}), stroke: new ol.style.Stroke({color: '#fff', width: 3}), }) });/ Questo è un altro vettore che devo rappresentare. Il risultato però è "ReferenceError: feature is not defined 181:46". La riga di riferimento dell'errore è "text: new ol.style.Text" e la colonna è quella prima di "new". Ho usato la documentazione ufficiale[0] per ol.style.Text ed ho inserito feature.get('toponimo') in text con questo risoltato. Se a feature.get('toponimo') sostituisco 'ciao' la label compare su tutti i punti e non ho errori. A me però serve che compaia il dato contenuto in toponimo! :( ________________ [0] https://openlayers.org/en/latest/apidoc/ol.style.Text.html ----- Ingegnere, consulente GIS e ciclista urbano -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 796 iscritti al 28/12/2017
Consulente GIS, Formatore, Blogger e Ciclista Urbano
email: info@massimilianomoraca.it
cell: 333 5949583 (lun-ven, 9.00-18.00)
website: massimilianomoraca.it
|
Free forum by Nabble | Edit this page |