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

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

 

Pied de page des forums

Powered by FluxBB