Как прослушивать карту памяти внутри записи обновления

Im загружает мою карту Google и хочет отобразить мой маршрут. Когда я ставил слушателей, просто он выглядел очень хорошо.

{
                xtype: 'map',
                flex: 1,
                mapOptions: {
                    zoom: 13,
                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                },
                listeners: {
                    maprender : function(comp, map){;
                        var directionsDisplay = new google.maps.DirectionsRenderer();
                        var directionsService = new google.maps.DirectionsService();
                        directionsDisplay.setMap(map);

                        var start = 'New York';
                        var end = 'Chicago';
                        var request = {
                            origin:start, 
                            destination:end,
                            travelMode: google.maps.DirectionsTravelMode.DRIVING
                        };
                        directionsService.route(request, function(response, status) {
                            if (status == google.maps.DirectionsStatus.OK) {
                                directionsDisplay.setDirections(response);
                            }
                        });
                    }
                }

Когда я перемещаю слушателей на updateRecord, поэтому я могу положить начало и конец из своей записи, мой слушатель для maprender не запускается.

updateRecord: function(newRecord) {
        if (newRecord) {
            var record = newRecord;
            this.down('map').setListeners({
                maprender : function(comp, map){
                    var tripsStore= Ext.getStore('Trips');
                    var directionsDisplay = new google.maps.DirectionsRenderer();
                    var directionsService = new google.maps.DirectionsService();
                    directionsDisplay.setMap(map);
                    //alert("ok pressed");
                    console.log
                    var start = record.data.from;
                    var end = record.data.to;
                    var request = {
                        origin:start, 
                        destination:end,
                        travelMode: google.maps.DirectionsTravelMode.DRIVING
                    };
                    directionsService.route(request, function(response, status) {
                        if (status == google.maps.DirectionsStatus.OK) {
                            directionsDisplay.setDirections(response);
                        }
                    });
                }
            });
        }
    },

Любые идеи, как я могу это исправить?

0

1 ответы

Я добавил всю свою визуализацию карты в запись обновления, и теперь она отлично работает.

updateRecord: function(newRecord) {
    if (newRecord) {
        this.down('#content').setData(newRecord.data);
        this.down('map').setData(newRecord.data);
    };
    //GET MAP
    var map = this.down('map').getMap();
    //console.log(map);
    var directionsDisplay = new google.maps.DirectionsRenderer();
    var directionsService = new google.maps.DirectionsService();
    //SET map
    directionsDisplay.setMap(map);
    //get data
    var mapData = this.down('map').getData();
    //SET DATA
    var start = mapData.from;
    var end = mapData.to;
    var request = {
        origin:start, 
        destination:end,
        travelMode: google.maps.DirectionsTravelMode.DRIVING,
    };
    directionsService.route(request, function(response, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            directionsDisplay.setDirections(response);
            var miles = Ext.getCmp('miles'),
            distance = Math.floor(response.routes[0].legs[0].distance.value/1000),
            minutes = Math.floor(response.routes[0].legs[0].duration.value/60);
            miles.setHtml("Distance: " + distance + " kilometers.
Time: " + minutes + " minutes."); } }); Ext.device.Geolocation.getCurrentPosition({ success: function(position) { var long = position.coords.longitude, lat = position.coords.latitude; var marker = new google.maps.Marker({ position: new google.maps.LatLng(lat,long), title : 'Me', map: map }); }, failure: function() { console.log('something went wrong!'); } }); },
0
добавлено