我正在从数据库加载标记,然后在标记之间绘制折线。我使用折线来计算总距离,而不是必须计算从标记A到标记B再到标记C等的距离。
然而,如果两个标记位于弯曲的道路附近,折线只会将它们连接起来,而不是沿着道路绘制它们,因此我的距离不准确。
我知道Google Maps API可以做到这一点,但使用限制不适合我,这就是为什么我决定使用leaflet的原因。
我的标记之间并不相隔太远,因为我的GPS设备每10秒发送一次位置信息。
我找到了leaflet-routing-machine插件,想知道是否可以使用它来使我的折线贴合道路?
以下是我如何向地图添加标记:
然而,如果两个标记位于弯曲的道路附近,折线只会将它们连接起来,而不是沿着道路绘制它们,因此我的距离不准确。
我知道Google Maps API可以做到这一点,但使用限制不适合我,这就是为什么我决定使用leaflet的原因。
我的标记之间并不相隔太远,因为我的GPS设备每10秒发送一次位置信息。
我找到了leaflet-routing-machine插件,想知道是否可以使用它来使我的折线贴合道路?
以下是我如何向地图添加标记:
function getlocationsfromdb(){
group.clearLayers();
latlngArray.length=0;
var deviceid = $("#selectid").val();
$.ajax({
type: "POST",
url: "functionhandlers/getlocations.php",
data: {deviceid:deviceid,start:start,end:end},
dataType: 'json',
cache: false,
})
.success(function(response) {
$('input').removeClass('error').next('.errormessage').html('');
if(!response.errors && response.result) {
$.each(response.result, function( index, value) {
var latlng = L.latLng(value[7], value[8]);
var marker = L.circleMarker(latlng,{radius:2}).addTo(group);
latlngArray.push(latlng);
});
var polyline = L.polyline(latlngArray, {color: '#605ca8'}).addTo(group);
map.fitBounds(group.getBounds());
var distancetravelled=polyline.measuredDistance();
$("#distancetravelled").html(distancetravelled);
} else {
$.each(response.errors, function( index, value) {
// add error classes
$('input[name*='+index+']').addClass('error').after('<div class="errormessage">'+value+'</div>')
});
}
});
}
请问有人可以指导我吗?
L.Routing.osrm
,但我无法从文档中弄清楚。 - nathansnider