Vous avez plusieurs options possibles.
A) Si vous avez seulement un jeu de données , alors vous pouvez utiliser un StyleFunction
. Voir cette ol3 vector example, plus précisément cette section de code:
var vectorLayer = new ol.layer.Vector({
source: new ol.source.Vector({
url: 'https://openlayers.org/en/v3.20.1/examples/data/geojson/countries.geojson',
format: new ol.format.GeoJSON()
}),
style: function(feature, resolution) {
style.getText().setText(resolution < 5000 ? feature.get('name') : '');
return style;
}
});
Voir la propriété style
? Ce peut être un ol.style.Style
ou une fonction de style, comme démontré ci-dessus. La fonction reçoit la fonction et la résolution actuelle de la vue en tant qu'argument et est appelée chaque fois que la fonction est rendue (ou rendue). Renvoyer un ol.style.Style
ou un tableau d'objets de style rendra la fonction en utilisant le/ces styles.
La caractéristique peut avoir des propriétés uniques, c'est-à-dire feature.getProperties()
. En utilisant autant de propriétés dans les entités, vous pouvez renvoyer un tableau unique d'objets de style uniques.
Voici un complex ol3 example featuring style functions plus que vous pouvez regarder et avoir un exemple de style dynamique en fonction de la résolution. Cela pourrait vous donner une meilleure idée de ce que vous pourriez faire avec les propriétés de la fonctionnalité.
B) Si vous avez plusieurs ensembles de données, vous pouvez créer une couche de vecteur par ensemble de données et définir un objet de style unique sur la couche, ce qui rendrait les caractéristiques tout de même.
Moi aussi, je fais face au même problème. Vous pouvez essayer leaflet.js ainsi –
Mais j'ai besoin de la solution dans OpenLayers 3. – SHK