#1 Fri 20 July 2018 12:01
- gmenguy
- Participant actif
- Lieu: Epinal
- Date d'inscription: 24 Apr 2006
- Messages: 54
[OPENLAYERS] : Style complexe
Bonjour,
J'affiche des points issue d'un fichier GEOJSON et je souhaite leur appliquer un style :
- Je souhaite appliquer un style avec des pictogrammes basés sur le champ "picto" du fichier geojson : Ca c'est bon
- je souhaite également appliquer un label basé sur le champ "numero" du fichier geojon mais qui s'affiche seulement à partir d'un niveau de zoom défini : je n'arrive pas à combiner les deux et notamment à ajouter le label en fonction d'un champ
voilà déjà mon ébauche de code qui fonctionne pour les pictos:
Code:
var style1 = new ol.style.Style({image: new ol.style.Icon({scale: 0.2,src: './carto/picto/PI_HS.png'})}); var style2 = new ol.style.Style({image: new ol.style.Icon({scale: 0.2,src: './carto/picto/BI_HS.png'})}); var pei_prive = new ol.layer.Vector({ source: source_pei_prive, style: function(feature, resolution) { if (feature.get('picto') === 1) { return style1; } if (feature.get('picto') === 2) { return style2; } }, minResolution: 0, maxResolution:10, });
Que faut-il que je rajoute pour afficher un label basé sur le champ numéro de mon fichier geojson ? J'ai testé pas mal de chose mais je suis dans une impasse.
Merci de votre aide
gwen
Dernière modification par gmenguy (Fri 20 July 2018 14:54)
Hors ligne
#2 Wed 29 August 2018 17:57
- michel56
- Participant assidu
- Lieu: Lorient
- Date d'inscription: 14 Jul 2012
- Messages: 474
Re: [OPENLAYERS] : Style complexe
J'ai fait de cette façon il y a quelques années avec un fichier OSM et Openlayers 2.
Créer un style:
Code:
var Style_Nom_Communes = new OpenLayers.Style({ label: "${nom_commune}", fontFamily: "arial", fontSize: "10px", fontWeight: "bold", fontColor: "#556627" });
Ajouter la couche:
Code:
Nom_Communes = new OpenLayers.Layer.Vector("Nom des Communes", { protocol: new OpenLayers.Protocol.HTTP({ Projection: new OpenLayers.Projection("EPSG:4326"), url: "_osm_nom_communes.osm", format: new OpenLayers.Format.OSM() }), maxScale: 210000, minScale: 220000, styleMap : Style_Nom_Communes, strategies: [new OpenLayers.Strategy.Fixed()] }); Nom_Communes.setVisibility(true); map.addLayer(Nom_Communes);
Tu remplaces "nom_commune" par le nom de ton champ et le format de la couche. Içi c'est OSM
Dernière modification par michel56 (Wed 29 August 2018 19:25)
Opérateur cartographique & DAO & PHP.
Hors ligne