大家好,我是梦起,最近有一个在地图上绘制水平距离线段的要求,找遍网上资料都没发现有相关方法,只好自己查阅相关资料,然后自己写了个,如有大佬有更好方法,欢迎在评论区探讨。
思路:先计算出对应距离水平线段对应坐标点,再基于对应坐标点计算垂直上下两个坐标点,最后基于三个点计算出相应的距离线段
代码:
/**
* APIMethod:OpenLayers+turf绘制距离线段的接口扩展
* @param origin 线段顶点
* @param radius 线段距离
* @returns {OpenLayers.Geometry.LineString}
*/
// 绘制距离线段方法
function createLine(origin, radius) {
let point = turf.destination(origin,radius,90).geometry.coordinates
let points = [];
points.push(turf.destination(point,0.01,0,"miles").geometry.coordinates)
points.push(turf.destination(point,0.01,180,"miles").geometry.coordinates)
return new LineString(points);
}