https://openlayers.org/en/latest/apidoc/module-ol_geom_Polygon-Polygon.html

    正方形是由圆得到的,关键api: new ol.geom.Polygon.fromCircle()

    1. /* 1、根据圆获取多边形 */
    2. // [10,0] 绘制的坐标原点 5表示半径
    3. const SquareCircle = new ol.geom.Circle([10,0],5)
    4. const Square = new ol.Feature({
    5. /*
    6. 第一个参数:Circle(圆对象)
    7. 第二个参数:正n边形
    8. 第三个参数:旋转的弧度
    9. */
    10. geometry:new ol.geom.Polygon.fromCircle(SquareCircle,4,Math.PI/4)
    11. })
    12. /* 2、设置样式 */
    13. Square.setStyle(
    14. new ol.style.Style({
    15. fill:new ol.style.Fill({
    16. color:'rgba(255,255,255,.7)'
    17. }),
    18. stroke:new ol.style.Stroke({
    19. color:"#333",
    20. width:3
    21. })
    22. })
    23. )
    24. /* 3、设置数据源 */
    25. var source = new ol.source.Vector({
    26. features:[Square]
    27. })
    28. /* 4、创建图层 */
    29. var vector = new ol.layer.Vector({
    30. source:source
    31. })
    32. /* 5、将图层添加到地图容器中 */
    33. map.addLayer(vector)
    1. π = Math.PI
    2. 1° = π/180
    3. 45° = π/4;
    4. 45° = Math.PI/4;
    5. new ol.geom.Polygon.fromCircle(SquareCircle, 4,Math.PI/4)