Annonce
Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.
Vous allez recevoir un message pour effectuer ce changement de mot de passe.
Merci de bien respecter les règles préconisées.
#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