首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Leaflet和TurfJS:无法使用目标和方向角绘制垂直线

Leaflet和TurfJS:无法使用目标和方向角绘制垂直线
EN

Stack Overflow用户
提问于 2020-03-15 03:01:57
回答 1查看 200关注 0票数 0

我正在尝试绘制垂直线,并且我正在使用destination和rhumbDestination方法。

代码语言:javascript
复制
let home = turf.point([43.12831626497193, 1.259286403656006]);
L.circle(home.geometry.coordinates, {
    color: 'purple',
    fillColor: 'purple',
    fillOpacity: 0.5,
    radius: 20
}).addTo(map);

let destination;

destination = turf.rhumbDestination(home.geometry.coordinates, 400, 45, {units: 'meters'});
L.polyline([destination.geometry.coordinates, home.geometry.coordinates]).setStyle({color: 'green', weight: 5}).addTo(map);
destination = turf.rhumbDestination(home.geometry.coordinates, 400, -135, {units: 'meters'});
L.polyline([destination.geometry.coordinates, home.geometry.coordinates]).setStyle({color: 'green', weight: 5}).addTo(map);


destination = turf.rhumbDestination(home.geometry.coordinates, 400, 135, {units: 'meters'});
L.polyline([destination.geometry.coordinates, home.geometry.coordinates]).setStyle({color: 'red', weight: 5}).addTo(map);
destination = turf.rhumbDestination(home.geometry.coordinates, 400, -45, {units: 'meters'});
L.polyline([destination.geometry.coordinates, home.geometry.coordinates]).setStyle({color: 'red', weight: 5}).addTo(map);

但是结果线不是垂直的。

Not perpendicular

我正在使用leaflet进行可视化。我也用destination方法进行了测试,结果是一样的。

当方向角是90的倍数时,结果是正确的。

代码语言:javascript
复制
destination = turf.rhumbDestination(home.geometry.coordinates, 400, 0, {units: 'meters'});
L.polyline([destination.geometry.coordinates, home.geometry.coordinates]).setStyle({color: 'green', weight: 5}).addTo(map);
destination = turf.rhumbDestination(home.geometry.coordinates, 400, -180, {units: 'meters'});
L.polyline([destination.geometry.coordinates, home.geometry.coordinates]).setStyle({color: 'green', weight: 5}).addTo(map);


destination = turf.rhumbDestination(home.geometry.coordinates, 400, 90, {units: 'meters'});
L.polyline([destination.geometry.coordinates, home.geometry.coordinates]).setStyle({color: 'red', weight: 5}).addTo(map);
destination = turf.rhumbDestination(home.geometry.coordinates, 400, -90, {units: 'meters'});
L.polyline([destination.geometry.coordinates, home.geometry.coordinates]).setStyle({color: 'red', weight: 5}).addTo(map);

Perpendicular

我做错了什么?如何使用leaflet和turfjs绘制垂直线?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-15 16:24:27

这是一个坐标顺序的问题: Leaflet (像Google Maps)使用纬度,经度模式,而Turf遵循经度,纬度的GeoJSON定义,即几何平面上的x,y等价物。

感谢stegobit的回答

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60686332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档