我不太了解如何将选项应用于传单路由机器。这是使用路由的基本代码:
var map = L.map('map');
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <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);
但这不起作用,当我试图使标记不可拖动并使路线不可更改时它也不起作用,我想我做错了什么,因为我可以改变我想要的东西在代码中,它不会改变显示器的任何内容......
基本上我想做的是显示一条无法通过拖动标记而没有行程文字改变的路线,换句话说,你不能改变原来的显示。
谢谢你的时间!
答案 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.itinerary
是L.Routing.Control
的基类。无需创建它的实例。您已将L.Routing.Control
添加到地图中。由于L.Routing.Control
从L.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);