MEASUREMENT
COORDINATE MUTATION
TRANSFORMATION
FEATURE_CONVERSION
MISC
HELPER
RANDOM
GRIDS
AGGREGATION
META
ASSERTIONS
BOOLEANS
UNIT CONVERSION
DATA
JOINS
CLASSIFICATION

shortestPath

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 属性作为网络的加权属性,在计算最短路径时考虑了加权因素。