0

在 Sencha Touch V2 中开发了一个应用程序。这个应用程序包含一个 Mappa 面板,其中有一个地图,这个地图已经填充了对应于从 json 文件中获取的各个位置(咖啡馆)的标记。

应用地图面板功能如下:

在标记上单击开始和结束位置 textields 弹出窗口,用户在其中输入开始和结束位置的值,再次单击任何其他标记会导致开始和结束位置的方向被绘制到地图上。

我们需要实现以下功能:

我们需要通过单击按钮来促进在地图上绘制的谷歌地图中输入的位置的方向,还需要重新创建地图实例(刷新地图)并将现有标记放置在另一个按钮单击(地图清除按钮)上,以便创建一个新实例供用户查找不同起点和终点位置的方向。

我们遇到的问题是:

  1. 在为按钮单击定义处理程序时,没有执行任何操作(获取方向处理程序不起作用)。
  2. 为了重新创建地图的实例,我们将地图设置为空,但这会导致地图没有标记。

任何人都可以在 Sencha touch 版本 2 中帮助完成此应用程序的任务。

4

1 回答 1

0

很久以前就创建了这种应用程序/功能。您可以创建一个浮动并在那里为端点formpanel提供字段条目。sourcedestination

然后,您可以点击“获取路线”按钮编写以下代码,

代码片段:-

tap: function() {
   var src = Ext.getCmp('srcField');
       var destn = Ext.getCmp('destField');
       var mode = Ext.getCmp('travelMode');
       var request = {
        origin: src.getValue(), 
        destination: destn.getValue(),
        travelMode: mode.getPressedButtons()[0].getText(),
       };

     Ext.Ajax.request({
      url: 'http://maps.googleapis.com/maps/api/directions/json?origin='+src.getValue()+'&destination='+destn.getValue()+'&mode='+mode.getPressedButtons()[0].getText()+'&sensor=false';
          method:'post',

          success : function(response) {
              showDirections(response,request);
          }         
     });

     function showDirections(res,req) {
       var directionsService = new google.maps.DirectionsService();
       var directionsDisplay = new google.maps.DirectionsRenderer();
       var map = Ext.getCmp('googleMapComponentId').getMap();

       directionsService.route(request, function(response, status) {
       if (status == google.maps.DirectionsStatus.OK) {
             directionsDisplay.setDirections(response);
             directionsDisplay.setMap(map);
       }
     });
  }                             
于 2012-05-14T05:04:43.230 回答