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

时间:2015-12-03 22:47:23

标签: 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);

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

L.Routing.itinerary({
  show: false
 }).addTo(map); 

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

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

谢谢你的时间!

3 个答案:

答案 0 :(得分:8)

您可以将该选项直接应用于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);

L.Routing.itineraryL.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

答案 1 :(得分:1)

我通过覆盖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);

另一个类似的答案:here

答案 2 :(得分:0)

无需创建新的L.Routing.plan,因为L.Routing.control()接受draggableWaypoints选项,

let waypoints = [...]
L.Routing.control({
    waypoints: waypoints,
    draggableWaypoints : false,//to set draggable option to false
    addWaypoints : false //disable adding new waypoints to the existing path 
}).addTo(map);