OpenLayers 5 v5.2.0将圆形绘制为多边形

时间:2018-11-02 11:19:36

标签: openlayers openlayers-5

我正在尝试升级到OpenLayers v5.2.0,我看不到有一个明确的方法可以将圆绘制为多边形(我需要这样才能将其存储在数据库中)

这就是我在做什么...

if (webMapValues.activeDrawControl == "Circle") {
    var wgs84Sphere = new ol.Sphere(6378138);
    webMapValues.drawObj = new ol.interaction.Draw({
        features: webMapValues.features,
        type: /** @type {ol.geom.GeometryType} */ (webMapValues.drawType),
        geometryFunction: function (coordinates, geometry) {
            if (!geometry) {
                geometry = new ol.geom.Polygon(null);
            }
            var center = coordinates[0];
            var last = coordinates[1];
            var dx = center[0] - last[0];
            var dy = center[1] - last[1];
            var radius = Math.sqrt(dx * dx + dy * dy);
            var circle = ol.geom.Polygon.circular(wgs84Sphere, ol.proj.toLonLat(center), radius);
            circle.transform('EPSG:4326', 'EPSG:3857');
            geometry.setCoordinates(circle.getCoordinates());
            return geometry;
        }

    });

}

...但是在此版本的OpenLayers中,ol.Sphere甚至都不是东西,而在此版本的OpenLayers中,ol.sphere却不喜欢它...

非常感谢您的帮助!

0 个答案:

没有答案