Leaflet Routing Machine基于Leaflet的路径引擎

Leaflet Routing Machine(以下简称LRM)试图给复杂的问题提供一个简单的解决方案:现实中,路径可以是多方面的,并且用于各种场景的用户界面也大不相同; 大多数站点都希望用自己的样式实现用户界面。LRM 通过默认值来解决这一问题:只需要几行代码就可以添加基本的路径功能。另外,在用户界面、功能、样式等方面,LRM 有很强的可扩展性,都是可定制的。

功能

  • 标准的Leaflet 控件、外观和质感
  • 起始点的路径,通过地址输入和使用地图拾取坐标的方式,添加点、编辑和移除经过点。
  • 多语言支持
  • 支持多种路由引擎:

  • 对于进一步的使用,高度可定制化
  • 外观(主题和皮肤)可定制
  • 开源(ISC License,与 MIT License差不多类似)
  • TypeScript 语言描述

开始

很简单,在Leaflet页面引用leaflet-routing-machine.css  leaflet-routing-machine.js即可

    <link rel="stylesheet" type="text/css" href="leaflet.css">
    <link rel="stylesheet" type="text/css" href="leaflet-routing-machine.css">
     <script src="leaflet.js"></script>
     <script src="leaflet-routing-machine.js"></script>

或者,还可以通过NPM进行安装:

npm install --save leaflet-routing-machine

使用以下几行代码就可以添加基本的路径控制,其中control是用路径控制类,其属性waypoints表示经过的路点。

L.Routing.control({
  waypoints: [
    L.latLng(57.74, 11.94),
    L.latLng(57.6792, 11.949)
  ]
}).addTo(map);

也可以在初始化control之后,用函数setWaypoints进行设定。

//设置路点,注意路点的格式为纬度在前,经度在后
control.setWaypoints([
    L.latLng( 28.142105,112.9547356),
    L.latLng( 28.2290135,112.923814)
]);

//或者用下面的方式 

control.setWaypoints([ [28.1067387,112.8903746], [28.2493457,113.1502707], ]);

注意在基础版本中,控制模块不提供地址查找(地理编码)功能,所以你需要在这里设置路点的经纬度。后面的教程中,将会教你如何添加地址查找和地理编码的功能,或者可以直接查看API更多的细节。

Help, problems and contributing

该插件是免费且开源的,LRM的代码在GitHub上进行管理。欢迎提供反馈和帮助。

下面是一个简短的教程,展示了用LRM实现一些通用的使用场景。其他具体的细节可以参考API文档,包含了LRM完整的技术细节。

转载自:https://blog.csdn.net/meizi454089902/article/details/80625215

You may also like...