lrm-mapzen, 在单片机路由机中,对Mapzen转转路由的支持

分享于 

7分钟阅读

GitHub

  繁體 雙語
Support for Valhalla by Mapzen in Leaflet Routing Machine
  • 源代码名称:lrm-mapzen
  • 源代码网址:http://www.github.com/nextzen/lrm-mapzen
  • lrm-mapzen源代码文档
  • lrm-mapzen源代码下载
  • Git URL:
    git://www.github.com/nextzen/lrm-mapzen.git
    Git Clone代码到本地:
    git clone http://www.github.com/nextzen/lrm-mapzen
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/nextzen/lrm-mapzen
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    Mapzen正在关闭它的服务,包括 Turn-by-turn。 在 https://mapzen.com/blog/shutdown/ 阅读更多内容。

    npm version

    在Leaflet路由机器in添加对 Mapzen Turn-by-Turn路由的支持

    Mapzen Turn-by-Turn是一个开源路由服务,可以使用动态运行时成本,将汽车。行车。行人或者多模式导航。

    使用这个插头来创建一个传单地图( 也称为路点) 之间的路线线路。

    使用 lrm Mapzen,Mapzen Turn-by-Turn替代了在Leaflet路由机器in中使用的默认路由服务。 你需要安装 lrm-mapzen插件,并从 mapzen.com/developers 获取一个API密钥。

    开始使用 lrm-mapzen

    遵循教程教程构建带有 lrm-mapzen的地图。

    在加载Leaflet路由机器:将lrm下载到页面mapzen并将对JavaScript文件的引用插入到你的页面中;

    [...]
    <scriptsrc="leaflet-routing-machine.js"></script>
    <scriptsrc="lrm-mapzen.js"></script>
    [...]

    另外,包含样式表。这可以替代LRM提供的默认 leaflet-routing-machine.css,因为Mapzen插件包含它自己的样式和图标。

    <linkrel="stylesheet"href="leaflet.routing.mapzen.css">

    在 placeholder text中插入 Mapzen API密钥和路由选项对象,至少包含成本计算模式。 请注意,formatter 不需要额外的选项。

    var map =L.map('map');L.Routing.control({
     // [...] See MapzenTurn-by-Turn API documentation for other options router:L.Routing.mapzen('mapzen-xxxxxx', {
     costing:'auto' }),
     formatter:newL.Routing.mapzenFormatter()
    }).addTo(map);

    如果要包含额外的成本选项以帮助定义路径和估计时间,可以将成本选项对象作为路由器参数。 你也可以选择方向的选择来改变语言。距离单位或者叙述指导生产。 有关可用选项的更多信息,请参见 Mapzen Turn-by-Turn API文档

    L.Routing.control({
     router:L.Routing.mapzen('mapzen-xxxxxx', {
     costing:"bicycle",
     costing_options: {
     bicycle: {
     bicycle_type:"Road",
     cycling_speed:"17.0",
     use_roads:"0.1" },
     },
     directions_options: {
     language:'en-US' }
     }),
     formatter:newL.Routing.mapzenFormatter(),
    }).addTo(map);

    使用 multimodal 成本模式,可以设置用于总线或者轨道线的偏好设置的成本选项。 如果包含 date_time,则可以请求在某个时间离开的中转路由,例如。 有关可用选项的更多信息,请参见 Mapzen Turn-by-Turn API文档

    L.Routing.control({
     router:L.Routing.mapzen('mapzen-xxxxxx', {
     // you need to pass mapzenLine as routeLine to router to see subroutes of transit routing.// you can skip routeLine if you don't want to use subroutes.routeLine:function (route, options) { returnL.Routing.mapzenLine(route, options); },
     costing:"multimodal",
     date_time: {
     type:1,
     value:"2016-05-10T08:00" }
     }),
     formatter:newL.Routing.mapzenFormatter(),
    }).addTo(map);

    请参阅 Leaflet Routing文档文档和 Mapzen Turn-by-Turn API文档for了解更多信息。

    使用 lrm mapzen与npm和 Browserify

    可以使用npm安装Mapzen插件,而无需手动下载脚本:

    npm install --save lrm-mapzen

    安装Mapzen插件后,更新路由器和格式化程序实例以告知传单路由机使用Mapzen的引擎。

    varL=require('leaflet');require('leaflet-routing-machine');require('lrm-mapzen');var map =L.map('map');L.Routing.control({
     router:L.Routing.mapzen('mapzen-xxxxxx', {costing:'auto'}),
     formatter:newL.Routing.mapzenFormatter()
    }).addTo(map);

    router 中,插入你的Mapzen Turn-by-Turn API密钥和路由选项对象至少包含路由模式( 例如 autobicyclepedestrian 或者 multimodal ) ;参见 Mapzen Turn-by-Turn API文档了解更多信息。 ( 请注意,formatter 不需要额外的选项。)

    你还可以在创建路由器后更改路由成本计算模式。 假设你在地图上有不同的传输选项,并希望在单击该按钮时将 costing 更改为 bicycle:

    var rr =L.Routing.mapzen('mapzen-xxxxxx', {costing:'auto'});
    [...]bikeButton.onClick:function () {
     rr.route({costing:"bicycle"});
    }

    运行本地示例

    如果要在本地运行 lrm-mapzen插件以进行测试和开发,请执行以下操作:

    • 通过npm或者安装 lrm-mapzen下载 lrm-mapzen repo的内容。
    • mapzen.com/developers 获取你的API密钥。
    • 将它粘贴到 index.js 中,并选择运输/成本模式( autobicycle 或者 pedestrian )
    • 启动本地站点服务器( 如 python -m SimpleHTTPServer 或者你喜欢的本地服务器)
    • 进入浏览器中的http://localhost:8000/examples ( 运行Mapzen所需的所有资源都位于 /examples 文件夹中)

    mac  SUP  MACH  turn  Leaflet  
    相关文章