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