google maps - How to listen for maprender inside update record -



google maps - How to listen for maprender inside update record -

im loading google map , want display route. when set listeners bellow map works fine.

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

when move listeners updaterecord can set start , end record, listener maprender doesnt start.

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

any ideas how can prepare ?

i added whole map render thing update record , works fine now.

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 info var mapdata = this.down('map').getdata(); //set info 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.<br/> 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!'); } }); },

google-maps sencha-touch

Comments

Popular posts from this blog

javascript - mongodb won't find my schema method in nested container -

Hibernate criteria by a list of natural ids -

ios - Lagging ScrollView with UIWebview inside -