【发布时间】:2017-11-26 02:48:23
【问题描述】:
我正在尝试将折线转换为 rout,但我遇到了问题 您在下图中看到,道路与折线不同:
这是我的代码:
var mymap = L.map('map').setView([32.661343, 51.680374], 6);
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(mymap);
var markers = new L.MarkerClusterGroup();
var markerList = [];
var a = [];
var myTrip = [];
var myTrip2 = [];
for (var i = 1; i < locations.length ; i++) {
myTrip.push(new L.LatLng(parseFloat(locations[i]['Received']['lat']),parseFloat(locations[i]['Received']['lng'])));
a[0] = parseFloat(locations[i]['Received']['lat']);
a[1] = parseFloat(locations[i]['Received']['lng']);
var marker = new L.Marker(new L.LatLng(a[0], a[1]));
marker.bindPopup((locations[i]['Received']['id']).toString());
markerList.push(marker);
var polyline =L.polyline(myTrip, {color: 'blue'}).addTo(mymap);
}
var markerPatterns = L.polylineDecorator(myTrip, {
patterns: [
{offset: 25, repeat: 50, symbol: L.Symbol.arrowHead({pixelSize: 15, pathOptions: {fillOpacity: 1, weight: 0}})}
]
}).addTo(mymap);
var control = L.Routing.control({
waypoints: myTrip,
show: false,
waypointMode: 'snap',
showAlternatives: true,
useZoomParameter: true,
createMarker: function() {}
}).addTo(mymap);
【问题讨论】:
-
预期的结果是什么?您使用的数据源是什么?
-
我的问题是创建了错误的路径,图像中列出的路径是多余的和错误的。我从数据库中读取了 LAT 和 LNG。
-
您的底图来自哪里?路线从何而来?标记的 lat-lngs 来自哪里?这些是不同的问题。
-
@IvanSanchez 底图是 OSRM 演示。 lat 和 lng 来自 GPS 传感器,然后存储在数据库中,并根据它们创建路线和标记。
-
如图所示,蓝线是用折线绘制的正确路径,红线是使用 rout 机器创建的,其中包括错误和附加的高低街道。