Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#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

 

Pied de page des forums

Powered by FluxBB