// destData is a data row returned from a service, used to create destGraphic.
// destGraphic is the destination graphic created and added to the graphic layer.
// vehGraphic is a vehicle graphic already present in the graphic layer.
var graphics = [];
graphics.push(destGraphic);
graphics.push(vehGraphic);
var extent = esri.graphicsExtent(graphics);
map.setExtent(extent);
map.infoWindow.hide();
map.infoWindow.setTitle(destGraphic.infoTemplate.title);
map.infoWindow.setContent(destGraphic.infoTemplate.content);
map.infoWindow.resize(350, 300);
var destPoint = new esri.geometry.Point(destData.Longitude,
destData.Latitude, new esri.SpatialReference({ wkid: 4326 }));
var screenPoint = map.toScreen(destPoint);
map.infoWindow.show(screenPoint, map.getInfoWindowAnchor(screenPoint));
function zoomTo(destGraphic, vehGraphic, destData){
// CONNECT ONEXTENTCHANGE EVENT
var onExtentChangeHandle = dojo.connect(map, 'onExtentChange', function() {
// THIS CODE WILL RUN *AFTER* THE EXTENT CHANGES...
// DISCONNECT ONEXTENTCHANGE EVENT
dojo.disconnect(onExtentChangeHandle);
// SETUP INFOWINDOW
map.infoWindow.setTitle(destGraphic.getTitle());
map.infoWindow.setContent(destGraphic.getContent());
map.infoWindow.resize(350, 300);
var destPoint = new esri.geometry.Point(destData.Longitude, destData.Latitude, new esri.SpatialReference({ wkid: 4326 }));
var screenPoint = map.toScreen(destPoint);
map.infoWindow.show(screenPoint, map.getInfoWindowAnchor(screenPoint));
});
// HIDE INFOWINDOW
map.infoWindow.hide();
// GET ZOOM EXTENT
var graphics = [];
graphics.push(destGraphic);
graphics.push(vehGraphic);
var extent = esri.graphicsExtent(graphics);
// SET EXTENT: THIS HAPPENS FIRST AND WILL TRIGGER THE ONEXTENTCHANGE EVENT ABOVE
map.setExtent(extent);
}
function setMapExtent(newExtent, callback) {
var onExtentChangeHandle = dojo.connect(map, 'onExtentChange', function() {
dojo.disconnect(onExtentChangeHandle);
if(callback){
callback();
}
});
map.setExtent(newExtent);
}
var graphics = [];
graphics.push(destGraphic);
graphics.push(vehGraphic);
var extent = esri.graphicsExtent(graphics);
setMapExtent(extent, function() {
map.infoWindow.hide();
map.infoWindow.setTitle(destGraphic.getTitle());
map.infoWindow.setContent(destGraphic.getContent());
map.infoWindow.resize(350, 300);
var destPoint = new esri.geometry.Point(destData.Longitude,
destData.Latitude, new esri.SpatialReference({ wkid: 4326 }));
var screenPoint = map.toScreen(destPoint);
map.infoWindow.show(screenPoint, map.getInfoWindowAnchor(screenPoint));
});