宣传单路由机 - 选项的使用

Sir*_*ico 5 leaflet

我不太了解如何将选项应用于传单路由机器.这是使用路由的基本代码:

var map = L.map('map');

L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);

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

现在,我想要做的是,隐藏行程文本,从我在API中写的内容看起来应该是这样的:

L.Routing.itinerary({
  show: false
 }).addTo(map); 
Run Code Online (Sandbox Code Playgroud)

但这不起作用,当我尝试使标记不可拖动并使路径不可更改时它也不起作用,我想我做错了什么,因为我可以在代码中改变我想要的东西,它不会改变显示器的任何内容......

基本上我想做的是显示一条无法通过拖动标记而没有行程文字改变的路线,换句话说,你不能改变原来的显示.

谢谢你的时间 !

iH8*_*iH8 10

您可以将选项直接应用于L.Routing.Control:

var routingControl = new L.Routing.Control({
    waypoints: [
        L.latLng(57.74, 11.94),
        L.latLng(57.6792, 11.949)
    ],
    show: false
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)

L.Routing.itinerary是基类L.Routing.Control.无需创建它的实例.您已经L.Routing.Control添加到地图中.由于L.Routing.ControlL.Routing.Itinerary它扩展而且还继承了该show选项.查看API:

L.Routing.Control:将其他类组合成一个完整的路由用户界面.插件的主要类.扩展L.Routing.Itinerary并实现IControl.

http://www.liedman.net/leaflet-routing-machine/api/#l-routing-control


Rob*_*acs 5

我通过重写control.plan 中的createMarker函数并将draggable: false传递给标记来禁用可拖动标记。这是带有路由机的只读传单地图控制配置的片段。

var control, waypoints;

waypoints = [];

control = L.Routing.control({
  waypoints: waypoints,
  plan: L.Routing.plan(waypoints, {
    createMarker: function(i, wp) {
      return L.marker(wp.latLng, {
        draggable: false
      });
    }
  }),
  addWaypoints: false,
  routeWhileDragging: false,
  show: false
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)

另一个类似的答案:这里