侵权投诉
订阅
纠错
加入自媒体

采用google地图的Android系统导航应用设计

2013-11-07 14:52
空白小盒子
关注

  2、编写Html 网页实现线路规划:

  线路规划的前提是必须要指定起始地址以及出行方式,本系统用户是通过在Activity 中输入地址和选择出行方式来向系统提交信息。WebView 必须从应用中获取信息,然后发送给Html,供javascript 调用并实现导航。

  在android 应用端,定义一个类保存用户输入的起始地址的经纬度信息:

  // 在javascript 脚本中调用得到LatlngData 对象

  public LatlngData getLatlngData()

  { return latlngData;

  }

  /* 定义一个latlngData 类,保存经纬度信息,经纬度由Geocoder.getFromLocationNAME()方法按照用户输入地址解析而得到。*/

  class LatlngData

  { String startLatlng;

  String endLatlng;

  public LatlngData()

  {

  this.startLatlng=“”;

  this.endLatlng =“”;

  }

  public String getStartLatlng()

  {

  return startLatlng;

  }

  public String getEndLatlng()

  {

  return endLatlng;

  }

  }

  // 通过LatlngDataInterface () 方法将数据类绑定给javascript,这样javascript 就能够获// 得了用户的数据了。

  public class DataJavaScriptInterface{

  public LatlngData LatlngDataInterface(){

  latlngData = getLatlngData();

  return latlngData;

  }

  在Html 网页中编写以下代码获得数据,并通过格式转换使数据能够为线路规划所接受,代码如下:

  var latlngData = window.demo.LatlngDataInterface();

  // 获取起点和终点位置的经纬度信息为String 格式

  startLatlng = latlngData.getStartLatlng();

  endLatlng = latlngData.getEndLatlng();

  // 把String 格式经纬度转换为Float 格式

  startLat = parseFloat(startLatlng.substring(0,8));

  startLng = parseFloat(startLatlng.substring(10,18));

  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);

  }

  });

  }

  通过上述的操作我们基本上实现了线路规划,在此基础上我们能够添加更多的功能,如语音导航、路况提示、周边配套设施提示等,使用户获得更好的用户体验。最终效果如下图所示:

采用google地图的Android系统导航应用设计

图3 最终效果图

  六、结束语

  智能手机导航应用无疑将会有广阔的市场前景,能够为用户提供更多有用信息的导航软件将是未来该应用方向的必然趋势,Google Maps 作为最早的网上电子地图服务,其强大的功能和开放的API ,使得我们能够在其基础上二次开发出很好的应用。具有很大的商用价值。该系统还存在网页载入速度较慢、语音提示功能等问题,还有待进一步研究和开发。

<上一页  1  2  3  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号