小叶中两条线的交点

Intersection point of two lines in leaflet

本文关键字:两条线 叶中      更新时间:2023-09-26

我想得到传单中两条折线的交点。我有如下两行:-

var latlng1 = L.latLng(-7.9375, 4.46354);
var latlng2 = L.latLng(-7.96875, 16.11979);
var latlongs1 = [ latlng1, latlng2 ];
var polyline1 = L.polyline(latlongs1, {
    color : 'red'
}).addTo(map);

var latlng3 = L.latLng(-3.5625, 9.31719);
var latlng4 = L.latLng(-12.125, 9.50469);
var latlongs2 = [ latlng3, latlng4 ];
var polyline2 = L.polyline(latlongs2, {
    color : 'blue'
}).addTo(map);

我可以得到这些直线的边界和端点的长度。我无法得到所有直线长度的连续数组。有什么办法能得到它吗?

如果您不想对所有逻辑进行编码,那么有一个名为Turf的小型且易于使用的库,它提供了几种地理处理算法。你甚至可以只使用其中一种算法,基本上独立于库的其他部分。

lineIntersects模块正是你想要的。

var intersection = turf.lineIntersect(polyline1.toGeoJSON(), polyline2.toGeoJSON());
var intersectionCoord = intersection.features[0].geometry.coordinates;

您也可以查看模块的源代码以获得灵感