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 に移動してレコードから start と end を配置できるようにすると、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);
}
});
}
});
}
},
これを修正する方法はありますか?