简介
multimodal-isochrones 是一个可以计算多种交通方式下路程时间及可到达范围的一个 npm 包。它可以用于规划、可达性分析、交通中心计算等场景。本篇文章会详细介绍如何使用这个包,并提供示例代码进行实践。
安装
在使用之前,你需要先安装 multimodal-isochrones 包。使用下面的命令即可:
npm install multimodal-isochrones
使用
基本的使用方法
使用 multimodal-isochrones 包需要引入以下几个模块:
const MultiModalIsochrones = require('multimodal-isochrones').default; const MapboxClient = require('mapbox'); const openrouteservice = require('openrouteservice-js'); const Transitfeeds = require('transitfeeds');
以上模块分别是:
- MultiModalIsochrones:multimodal-isochrones 包的主模块。
- MapboxClient:使用 Mapbox 数据的一个模块。
- openrouteservice:使用 OpenRouteService 数据的一个模块。
- Transitfeeds:使用 Transitfeeds 数据的一个模块。
导入模块之后,使用如下方法即可生成一个路程计算器:
// 创建 multimodal-isochrones 实例 const calculator = new MultiModalIsochrones({ providers: { mapbox: new MapboxClient('Your Access Token'), transitFeeds: new Transitfeeds('Your API Key'), openRoute: new openrouteservice('Your API Key') } });
以上代码创建了一个名为 calculator 的实例,并指定了三种不同的供应商:Mapbox、Transitfeeds 和 OpenRouteService。接下来,可以使用以下方法对实例进行计算:
-- -------------------- ---- ------- -- ---------------------- -------------------------- ---- ------- ---- ------- -------- --------------- ------ --- - ---- ---------- - -- ------------ -- ---------------------
以上代码计算了一组坐标的 20 分钟步行可达区域,并返回结果。从返回结果可以看到,每个坐标都对应了一组由 lon 和 lat 组成的数组。这组数组表示了在限定的步行时间内可以到达的所有位置。
进一步的使用方法
在计算程序可达性时,通常需要同时考虑多种不同的交通方式。为了在 multimodal-isochrones 中使用多种交通方式,我们需要设置一个包含各种不同交通方式的 profile。以下代码展示了一个包含多种交通方式的 profile:
-- -------------------- ---- ------- ----- ------------ - - --------------- - --------- --------- ----- --------------- ------ --------- -- -------------- - --------- ------------ ----- -------------- ------ --------- -- ------------------- - --------- --------------- ----- ------------------- ------ --------- - --
上面代码中,我们定义了三种交通方式:
- 小步行(地图提供商:Mapbox)
- 驾车(地图提供商:OpenRoute)
- 公共交通(地图提供商:Transitfeeds)
接下来,修改 getIsochrones 方法,使用设置好的多种交通方式:
-- -------------------- ---- ------- -------------------------- ---- ------- ---- ------- ------ --- - ---- ---------- -- -------- ------------- -------- --------- ---------- --------- -- ------------ -- ---------------------
在上述代码中,我们定义了一个 exclude 属性来排除一些交通方式,比如船只、校车等,以获得更为准确的计算结果。并使用刚刚定义好的 profile 进行了计算过程。
这就是 multimodal-isochrones 的最基本使用方法。接下来我们将通过一个完整的案例进行演示。
实例
在这个案例中,我们将使用 multimodal-isochrones 包计算三个点的路程时间及可到达范围:
-- -------------------- ---- ------- ----- -------------------- - ----------------------------------------- ----- ------------ - ------------------ ----- ---------------- - ------------------------------- ----- ------------ - ------------------------ ----- ------------ - - --------------- - --------- --------- ----- --------------- ------ --------- -- -------------- - --------- ------------ ----- -------------- ------ --------- -- ------------------- - --------- --------------- ----- ------------------- ------ --------- - -- ----- ---------- - --- ---------------------- ---------- - ------- --- ------------------ ------ -------- ------------- --- ------------------ --- ------ ---------- --- ---------------------- --- ----- - --- ------------------- -------------------------- ---- ------------- ---- ---------- ------ ------- ------ ------- ---------- -- -------- ------------- -------- --------- ---------- --------- -- ------------ -- - -------------------- ---
在上述代码中,我们使用了 mapbox、openrouteservice 和 Transitfeeds 三种地图服务。我们计算了三个点的路程时间和可到达范围,并分别设置了 10 分钟、20 分钟、30 分钟的路程时间。最后我们通过 console.log 打印出了计算结果。
总结
multimodal-isochrones 是一个非常强大的 npm 包,它支持多种交通方式,并可用于计算路程时间及可到达范围。在本文中,我们详细介绍了该包的安装及使用,并提供了示例代码进行实践。希望通过本文的介绍,可以帮助读者更好地了解该实用工具的使用方法。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066bcf967216659e244e6f