Поэтому я бы очень хотел изменить этот пример: http://openlayers.org/en/v3.0.0/examples/tissot.html?q=circle
Проблема в том, что когда я пытаюсь применить его к моей карте, он не работает, вероятно, потому что я использую стиль OSM, который не сферический:
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
})
});
И на вопрос: как создать круговой многоугольник? Как я вижу, есть два варианта:
Каким-то образом конвертировать geom.Circle в geom.Polygon, что я не могу сделать, основываясь на моем уровне noob
Создайте мою собственную функцию для этого, что-то вроде openlayers 2:
OpenLayers.Geometry.Polygon.createRegularPolygon = функция (начало координат, радиус, стороны, вращение) {
var angle = Math.PI * ((1 / сторон) - (1/2)); if (вращение) {угол + = (вращение / 180) * Math.PI; } var rotatedAngle, x, y; var points = []; для (var i = 0; i
Кто-нибудь дошел до той же точки в своей жизни ГИС-мастера? Какой лучше? или есть скрытый путь, который могут видеть только Мудрые и Сильные? Помоги мне, пожалуйста!
источник
ol.geom.Polygon.fromCircle
вместоol.geom.Polygon.circular
. Ура!Если вы заинтересованы в создании простого кругового многоугольника, используйте:
Источник: http://openlayers.org/en/v3.0.0/apidoc/ol.geom.Circle.html (уберите стабильную галочку в верхней части страницы)
источник
ol.geom.Circle
это не многоугольник, это простая геометрия, представленная радиусом и центром. (см. базовый классol.geom.Circle
isol.geom.SimpleGeometry
notol.geom.Polygon
) GeoJSON, WKT и KML не имеют круговой геометрии в своей спецификации и требуют преобразования перед форматированием. Пожалуйста, смотрите мой ответ для способа приблизитьol.geom.Circle
к истинному многоугольнику.