Daher möchte ich dieses Beispiel wirklich ändern: http://openlayers.org/en/v3.0.0/examples/tissot.html?q=circle
Das Problem ist, dass es nicht funktioniert, wenn ich versuche, es auf meine Karte anzuwenden, wahrscheinlich weil ich einen OSM-Stil verwende, der nicht sphärisch ist:
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
})
});
Und für die Frage: Wie erstelle ich ein kreisförmiges Polygon? Wie ich sehen kann, gibt es zwei Möglichkeiten:
Konvertiere geom.Circle irgendwie in geom.Polygon, was ich basierend auf meinem Noob-Level nicht kann
Erstellen Sie dazu meine eigene Funktion, so etwas wie Openlayers 2:
OpenLayers.Geometry.Polygon.createRegularPolygon = Funktion (Ursprung, Radius, Seiten, Drehung) {
var angle = Math.PI * ((1 / Seiten) - (1/2)); if (Drehung) {Winkel + = (Drehung / 180) * Math.PI; } var rotatedAngle, x, y; var points = []; für (var i = 0; i
Hat jemand den gleichen Punkt in seinem GIS-Meisterleben erreicht? Welches ist besser? oder gibt es einen versteckten weg, den nur weise und starke sehen können? Hilf mir bitte!
quelle
ol.geom.Polygon.fromCircle
eher als verwendenol.geom.Polygon.circular
. Prost!Wenn Sie ein einfaches kreisförmiges Polygon erstellen möchten, verwenden Sie:
Quelle: http://openlayers.org/en/v3.0.0/apidoc/ol.geom.Circle.html (entfernen Sie das stabile Häkchen oben auf der Seite)
quelle
ol.geom.Circle
ist kein Polygon, sondern eine einfache Geometrie, die durch einen Radius und einen Mittelpunkt dargestellt wird. (siehe Basisklasse vonol.geom.Circle
istol.geom.SimpleGeometry
nichtol.geom.Polygon
) GeoJSON, WKT und KML haben keine kreisförmigen Geometrien in ihrer Spezifikation und müssen vor der Formatierung konvertiert werden. In meiner Antwort finden Sie eine Möglichkeit, einol.geom.Circle
durch ein echtes Polygon zu approximieren .