2012-09-17 95 views
1

我有一個工具欄按鈕,點擊時應該將我的地圖更新到當前位置。我無法找到這個功能的工作示例,並希望有人可以給我建議。請參閱下面的示例代碼 - 感謝您的幫助Sencha Touch 2在按鈕上獲取當前位置點擊

地圖:

Ext.define('MyApp.view.Myap', { 
    extend: 'Ext.Map', 
    alias: 'widget.mymap', 
    config: { 
     useCurrentLocation: false, 
     mapOptions:{ 
      zoom: 9, 
      center: new google.maps.LatLng(42.2, -72.5), 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }, 
     listeners: { 
      maprender : function(comp, map){ 
       google.maps.event.addListenerOnce(map, "idle", function() { 
        var host = window.location.origin ? window.location.origin : window.location.protocol + "/" + window.location.host; 
        var kmlOptions = {preserveViewport: false} 
        var now = +new Date(); 
        var layer = new google.maps.KmlLayer(host + '/path/to.kml?timestamp=' + now, kmlOptions); 
        layer.setMap(map); 
        return layer; 
       }); 
      }, 
     } 
    }, 
}) 

工具欄按鈕:

Ext.define('MyApp.view.btnLocateMe', { 
    extend: 'Ext.Button', 
    alias: 'widget.btnlocateme', 

    config: { 
     ui: 'normal', 
     iconCls: 'locate', 
     iconMask: true, 
     text: 'Locate Me', 
     listeners: [ 
      { 
       fn: 'onButtonTap', 
       event: 'tap' 
      } 
     ] 
    }, 

    onButtonTap: function(button, e, options) { 
     //Produces error: cannot call method of undefined 
     currentLocation: new google.maps.LatLng(this._geo.getLatitude(), this._geo.getLongitude()); 
     MyApp.view.MyMap.map.setCenter(currentLocation); 
    } 
}); 

回答

0

我有一個建議。

嘗試改變當前位置到

new google.maps.LatLng(this.geo.getLatitude(),this.geo.getLongitude()) ; 

我認爲你可以從這個問題中here收集更多的信息。

+1

你從哪裏得到這個地理變量? –

-2

最簡單的方法 - 切換到另一個地圖視圖與選項useCurrentLocation在配置真正

+0

真的沒有一個答案.. –

+0

問題是「當點擊應該更新我的地圖到我的當前位置」,切換到另一個視圖與param「useCurrentLocation」設置爲「真」解決了這個問題。 –

0

我的兩分錢的貢獻,試試這個

1)MyApp.view.Myap替代

useCurrentLocation: false, 

 useCurrentLocation : { 
      autoUpdate : false 
     }, 

你也應該聲明currentLocation作爲變量(我相信)

 var currentLocation = ... 

這應該工作。我在onButtonTap但控制器內使用類似的邏輯,你沒有問題

問候

相關問題