`r`n
经纬志
`r`n
`r`n
首页 / OpenLayers / 使用示例
`r`n

绘制与修改大地圆

画圆时按球面公式重建外环,得到不受墨卡托形变影响的等距圆。

OpenLayers 10.3.1 · 更新 2026-10-27
`r`n
源码与运行效果
运行效果
`r`n

说明

ol.interaction.Draw 的 Circle 类型生成的是 ol.geom.Circle,在 EPSG:3857 下半径是投影单位,跨纬度会明显变形。 示例在 drawend 时把圆换算成球面等距多边形:以圆心为基准, 按 72 个方位角计算球面终点,再转回墨卡托。

转换后的要素是多边形,ol.interaction.Modify 可以直接拖折点微调, 因此「绘制」和「修改」落在同一套几何上。

操作结果
画一个圆半径按球面距离展开,外环有 72 个点
点「修改」拖动折点外环局部形变,用于手工修正
把圆画在高纬度外环不再呈投影椭圆的拉伸形状

球面半径按 6378137 米计算,与 ol.Sphere 的默认半径一致;要换成其他椭球需同时替换公式里的半径。

`r`n
`r`n