Annonce
Depuis plusieurs semaines, quand un utilisateur (membre des forums) poste un message (bouton "envoyer"), le délai de mise en ligne est proche de 10 secondes.
Merci de patienter et de ne pas rafraichir l'écran.
Yves (webmaster) est sur le coup
Merci pour votre compréhension.
#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