Suite

Règles et contexte OpenLayers, quelle est la différence ?

Règles et contexte OpenLayers, quelle est la différence ?


OpenLayers.Style utilise deux propriétés, "rule" et "context" qui contiennent en conséquence un tableau de OpenLayers.Rule et un ensemble de méthodes.

J'ai remarqué que "contexte" peut en quelque sorte remplacer "règle". Par exemple, dans un cas où il existe une couche vectorielle affichant les températures en tant qu'entités, avec "temp" dans ses propriétés pour les valeurs.

var temperatureStyle1 = new OpenLayers.Style({ // styles de symbolisation communs fontFamily: "Arial", label: "${temp}", fontColor: "${coltem}", fontWeight: "bold" }, { context: { coltem : function(feature) { var temperature=parseInt(feature.attributes.temp); var col="#000000"; if(temperature>35) { col="#CF2900"; } //Hot if(temperature<0) { col="#0000FF"; } //Retour froid col; } } });

est en quelque sorte équivalent à

var temperatureStyle2 = new OpenLayers.Style({ // styles de symbolisation communs fontFamily: "Arial", label: "${temp}", //fontColor: "${coltem}", pas vraiment nécessaire fontWeight: "bold" }, { règles : [ new OpenLayers.Rule({ filter : new OpenLayers.Filter.Comparison({ type : new OpenLayers.Filter.Comparison.LESS_THAN, property : "temp", value : 0 }), symbolizer : { fontColor : "# 0000FF" } }), nouvelle OpenLayers.Rule({ filter : new OpenLayers.Filter.Comparison({ type : new OpenLayers.Filter.Comparison.GREATER_THAN, propriété : "temp", valeur : 35 }), symbolizer : { fontColor : "#CF2900" } }), new OpenLayers.Rule({ elseFilter: true, symbolizer: { fontColor: "#000000" } }) ] });

Quels sont les avantages de chacune de ces deux approches? Je peux seulement voir qu'avec "contexte" je ne peux changer qu'un seul style (du symboliseur) à la fois, tandis qu'avec "règles" je peux redéfinir un symboliseur entier -- au lieu de faire de nombreuses méthodes de contexte pour chaque style faisant la même comparaison à chaque fois.

Y a-t-il autre chose que je ne peux pas voir ? Quelle est la raison de l'existence de l'objet « contexte » ?


Lorsque vous travaillez strictement avec des règles, vos styles peuvent être sérialisés en SLD, sinon non. Travailler avec des styles et un contexte statiques présente un léger avantage en termes de performances.


Voir la vidéo: Человеческое в тексте. Подходы к художественному тексту.