Je voudrais donc vraiment modifier cet exemple: http://openlayers.org/en/v3.0.0/examples/tissot.html?q=circle
Le problème est que lorsque j'essaie de l'appliquer à ma carte, cela ne fonctionne pas, probablement parce que j'utilise un style OSM qui n'est pas sphérique:
var map = new ol.Map({
layers: [
new ol.layer.Tile({
source: new ol.source.OSM()
}),
new ol.layer.Vector({
source: vectorSource
})
],
renderer: 'canvas',
target: 'map',
view: new ol.View({
center: ol.proj.transform([2.1833, 41.3833], 'EPSG:4326', 'EPSG:3857'),
zoom: 2
})
});
Et pour la question: comment créer un polygone circulaire? Comme je peux le voir, il y a deux choix:
D'une manière ou d'une autre, convertir geom.Circle en geom.Polygon, ce que je ne peux pas faire, en fonction de mon niveau de noob
Créer ma propre fonction pour ce faire, quelque chose comme openlayers 2:
OpenLayers.Geometry.Polygon.createRegularPolygon = fonction (origine, rayon, côtés, rotation) {
angle var = Math.PI * ((1 / côtés) - (1/2)); if (rotation) {angle + = (rotation / 180) * Math.PI; } var rotatedAngle, x, y; var points = []; pour (var i = 0; i
Quelqu'un est-il arrivé au même point dans sa vie de maître SIG? Quel est le meilleur? ou existe-t-il un chemin caché, que seuls les sages et les forts peuvent voir? Aidez-moi s'il vous plaît!
la source
ol.geom.Polygon.fromCircle
plutôt queol.geom.Polygon.circular
. À votre santé!Si vous souhaitez créer un simple polygone circulaire, utilisez:
Source: http://openlayers.org/en/v3.0.0/apidoc/ol.geom.Circle.html (supprimez la coche stable en haut de la page)
la source
ol.geom.Circle
n'est pas un polygone, c'est une géométrie simple représentée par un rayon et un centre. (voir la classe de baseol.geom.Circle
n'estol.geom.SimpleGeometry
pasol.geom.Polygon
) GeoJSON, WKT et KML n'ont pas de géométries circulaires dans leurs spécifications et nécessitent une conversion avant le formatage. S'il vous plaît voir ma réponse pour un moyen d'approximer unol.geom.Circle
par un vrai polygone.