传单中两行的交点

时间:2015-07-27 10:58:40

标签: javascript leaflet intersection

我想在传单中获得两条折线的交点。 我有以下两行: -

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);

我可以得到这些线的端点的界限和平方。我无法获得所有线条的连续数组。有没有办法得到它?

1 个答案:

答案 0 :(得分:1)

如果您不编写所有逻辑,那么有一个名为Turf的小型且易于使用的库,它提供了多种地理处理算法。您甚至可以使用其中一种算法,这些算法主要独立于库的其余部分。

lineIntersects模块完全符合您的要求。

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

您也可以查看the source code of the module获取灵感。