#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


