QUESTION :
Comment rendre une caractéristique sur un canevas en utilisant un style mais pas en utilisant une carte ?
CONTEXTE :
J'ai un exemple qui rend une géométrie sur un canevas en respectant le style ol3 mais il ne fonctionne qu'avec la version non construite d'openlayers (ol-debug.js) et parce qu'il utilise des fonctions privées (ol.vec.Mat4).
fonctionne en utilisant ol-debug.js
échoue lors de l'utilisation de ol.js
Une alternative consiste à créer une carte, à ajouter une couche vectorielle, à définir le style de l'élément, à ajouter l'élément à la couche et à supprimer tous les événements/contrôles de la carte pour qu'elle ressemble à un canevas.
Une seconde consiste à utiliser goog.vec.Mat4 .
let scale = Math.min(canvas.width / ol.extent.getWidth(extent), canvas.height / ol.extent.getHeight(extent));
console.log("scale", scale);
let transform = Mat4.makeTransform2D(identity,
canvas.width / 2, canvas.height / 2, // translate to origin
scale, -scale, //scale
0, // rotation
-center[0], -center[1] // translate back
);
console.log("transform", transform);
let renderer = new ol.render.canvas.Immediate(ctx, 1, extent, transform, 1);
renderer.drawFeature(feature, style);
La troisième est similaire à la deuxième, dans la mesure où je prends la responsabilité de transformer la géométrie en coordonnées de pixels avant d'utiliser ol.render.toContext, comme le montre l'exemple suivant exemple .
Je pense que c'est à peu près tout ? Ou existe-t-il un autre moyen ?