Así que realmente me gustaría modificar este ejemplo: http://openlayers.org/en/v3.0.0/examples/tissot.html?q=circle
El problema es que mientras trato de aplicarlo a mi mapa no funciona, probablemente porque uso el estilo OSM que no es esférico:
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
})
});
Y para la pregunta: ¿cómo crear un polígono circular? Como puedo ver, hay dos opciones: 1. Convertir de alguna manera el círculo en un polígono, lo cual no puedo hacer, basado en mi nivel de novato. 2. Crear mi propia función para hacer eso, algo como "Openlayers 2":
OpenLayers.Geometry.Polygon.createRegularPolygon = function(origin, radius, sides, rotation) {
var angle = Math.PI * ((1/sides) - (1/2));
if(rotation) {
angle += (rotation / 180) * Math.PI;
}
var rotatedAngle, x, y;
var points = [];
for(var i=0; i<sides; ++i) {
rotatedAngle = angle + (i * 2 * Math.PI / sides);
x = origin.x + (radius * Math.cos(rotatedAngle));
y = origin.y + (radius * Math.sin(rotatedAngle));
points.push(new OpenLayers.Geometry.Point(x, y));
}
var ring = new OpenLayers.Geometry.LinearRing(points);
return new OpenLayers.Geometry.Polygon([ring]);
};
¿Alguien ha llegado al mismo punto en su vida de maestro de SIG? ¿Cuál es mejor? ¿O hay un camino oculto, que sólo los Sabios y los Fuertes pueden ver? ¡Ayúdame por favor!