0

誰か助けてくれませんか?現在の位置を追跡できるマップが sencha にあり、線を描画します。しかし、追跡を停止するボタンも必要です。だから私は設定したいのですが、autoUpdate: false;これを行う方法が真剣にわかりません...

これは私のコードです

Ext.application({
name: 'Applicatie3.',
launch: function() {
    var view = Ext.create('Ext.NavigationView', {
        fullscreen: true,
        items: [{
            title: "I'm lost",
            xtype: 'tabpanel',
            items:[{
                title               : 'Home',
                xtype               : 'map',
                iconCls             : 'home',
                mapOptions          : { zoom: 20  },
                useCurrentLocation  : true,
                listeners           : {
                    maprender: function(comp, map){
                        var marker = new google.maps.Marker({
                            position    : new google.maps.LatLng( ),
                            map         : map
                        }),
                        infowindow = new google.maps.InfoWindow({
                            content     : '........'
                        }),
                        route = [ ],
                        geo = Ext.create('Ext.util.Geolocation', {
                            frequency         : 3000,
                            autoUpdate        : true,
                            allowHighAccuracy : true,
                            listeners         : {
                                locationupdate : function(geo) {
                                    polyline = new google.maps.Polyline({
                                        path : route,
                                        strokeColor: "red",
                                        strokeOpacity: 1.0,
                                        strokeWeight: 5
                                    });
                                    polyline.setMap(map),

                                    //alert(route);
                                    route.push( new google.maps.LatLng( geo.getLatitude(),geo.getLongitude() ) );

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

                                    google.maps.event.addListener(marker, 'click', function() {
                                         infowindow.open(map, marker);
                                    });

                                },
                                locationerror: function(geo, bTimeout, bPermissionDenied, bLocationUnavailable, message) {
                                    if(bTimeout){
                                        alert('Timeout occurred.');
                                    } else {
                                        alert('Error occurred.');
                                    }
                                }
                            } 
                        });
                        geo.updateLocation();
                    }                   
                } 
            } ]
        }]
    });
}

});

4

3 に答える 3

1

falseに設定されたグローバル変数でこの問題を解決し、スタートボタンを押すと変数がtrueに変わります。関数には if(true) {do location update} があり、変数が false に設定されている場合、場所の更新は機能しません。

于 2013-05-01T10:42:48.230 に答える
0

setAutoUpdate() メソッドをお探しですか? - http://docs.sencha.com/touch/2-1/#!/api/Ext.util.Geolocation-method-setAutoUpdate

于 2013-01-08T21:48:55.820 に答える