shortestPath是Turf中的MISC(杂项)函数之一,可以计算图形网络中两点之间的最短路径。
turf.shortestPath(startPoint, endPoint, options)
参数:
startPoint:起始点。类型为 Feature 或者 Coord。
endPoint:结束点。类型为 Feature 或者 Coord。
options(可选):有以下属性:
network: 需要导航的网络。类型为 FeatureCollection <LineString> 。weight(可选): 计算最短路径时的权重。类型为 string。默认为'length', 表示路径长度。可以是一个网络的特定属性。FeatureCollection <LineString>。var start = turf.point([-77.031669, 38.878605]);
var end = turf.point([-77.029609, 38.881946]);
var network = turf.featureCollection([
turf.lineString([[-77.031669, 38.878605], [-77.029609, 38.881946]], { cost: 3 }),
turf.lineString([[-77.031669, 38.878605], [-77.027137, 38.882071]], { cost: 1 }),
turf.lineString([[-77.030955, 38.879532], [-77.029609, 38.881946]], { cost: 2 }),
turf.lineString([[-77.030955, 38.879532], [-77.027137, 38.882071]], { cost: 4 })
]);
var path = turf.shortestPath(start, end, {network: network, weight: 'cost'});
注意:
path返回一个GeoJSON 线段 (FeatureCollection),其空间参考与输入的输入点的坐标系相同。
在示例中,我们使用 cost 属性作为网络的加权属性,在计算最短路径时考虑了加权因素。