如何解决Google Direction Direction服务提供错误的路线
在具有以下坐标的地图上绘制googlemap路线。但是路线错误。问题出在哪里?
LNG LAT
58.5589893333333 23.6229513333333 Start
58.5589985 23.6231225 WAY POINT 1
58.5591366666667 23.6235491666667 WAY POINT 2
58.55882 23.6236481666667 WAY POINT 3
58.5476361666667 23.6209141666667 WAY POINT 4
58.5454098333333 23.616038 END
错误的路线
在Google地图网站中尝试使用相同的坐标,这给出了正确的方法
问题出在哪里?正确发送所有航路点,起点和终点。坐标来自跟踪设备。仅在某些情况下显示这样的错误路线。
var directionDisplay;
var directionsService = new google.maps.DirectionsService();
directionsDisplay = new google.maps.DirectionsRenderer();
directionsDisplay.setMap(map);
var first = new google.maps.LatLng(23.6231225,58.5589985);
var second = new google.maps.LatLng(23.6235491666667,58.5591366666667);
var third = new google.maps.LatLng(23.6236481666667,58.55882);
var forth = new google.maps.LatLng(23.6209141666667,58.5476361666667);
var i = 0;
var start = StartlatDir[i]+','+StartlongDir[i];
var end = EndlatDir[i] + ',' + EndlongDir[i];
var request = {
origin: start,destination: end,waypoints: [{ location:first,stopover: false },{ location: second,{ location: third,{ location: forth,stopover: false }],optimizeWaypoints: false,travelMode: google.maps.DirectionsTravelMode.DRIVING,unitSystem: google.maps.UnitSystem.METRIC
};
directionsService.route(request,function (response,status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
var myRoute = response.routes[0];
var txtDir = '';
for (var i = 0; i < myRoute.legs[0].steps.length; i++) {
txtDir += myRoute.legs[0].steps[i].instructions + "<br />";
}
}
});
解决方法
DirectionsService对出口附近(或道路的错误一侧)附近的航路点非常敏感。
Waypoint 4 (23.6209141666667,58.5476361666667)
使路线离开出口。
将其沿(23.620315,58.5471)
的路线进一步移动即可得出预期的路线:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。