首页 / OpenLayers / 使用示例
`r`n 绘制与修改大地圆
画圆时按球面公式重建外环,得到不受墨卡托形变影响的等距圆。
`r`n
源码与运行效果
说明
ol.interaction.Draw 的 Circle 类型生成的是
ol.geom.Circle,在 EPSG:3857 下半径是投影单位,跨纬度会明显变形。
示例在 drawend 时把圆换算成球面等距多边形:以圆心为基准,
按 72 个方位角计算球面终点,再转回墨卡托。
转换后的要素是多边形,ol.interaction.Modify 可以直接拖折点微调,
因此「绘制」和「修改」落在同一套几何上。
| 操作 | 结果 |
|---|---|
| 画一个圆 | 半径按球面距离展开,外环有 72 个点 |
| 点「修改」拖动折点 | 外环局部形变,用于手工修正 |
| 把圆画在高纬度 | 外环不再呈投影椭圆的拉伸形状 |
球面半径按 6378137 米计算,与 ol.Sphere 的默认半径一致;要换成其他椭球需同时替换公式里的半径。