endLat = parseFloat(endLatlng.substring(0,8));
endLng = parseFloat(endLatlng.substring(10,18));
通过DirectionsService 对象计算路线(使用各种交通方式)。
此对象与Google Maps API Directions Service 进行通信,该服务将接收路线请求并传回计算结果。可以自行处理这些路线结果,也可以使用DirectionsRenderer 对象渲染这些结果:
function calcRoute(){
start = beginLatlng;
end = endLatlng;
var request = {
origin:start,
destination:end,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request,function(response,status){
if(status == google.maps.DirectionsStatus.OK){
var warnings = document.getElementById(“warnings_panel”);
warnings.innerHTML = “” + response.routes [0].warnings + “”;
directionSDIsplay.setDirections(response);
showSteps(response);
}
});
}
通过上述的操作我们基本上实现了线路规划,在此基础上我们能够添加更多的功能,如语音导航、路况提示、周边配套设施提示等,使用户获得更好的用户体验。最终效果如下图所示:
图3 最终效果图
六、结束语
智能手机导航应用无疑将会有广阔的市场前景,能够为用户提供更多有用信息的导航软件将是未来该应用方向的必然趋势,Google Maps 作为最早的网上电子地图服务,其强大的功能和开放的API ,使得我们能够在其基础上二次开发出很好的应用。具有很大的商用价值。该系统还存在网页载入速度较慢、语音提示功能等问题,还有待进一步研究和开发。