private function clickHandler() : void { var ovBMDat:BitmapData; if(dataTable){ if (dataTable.containsKey("ovMap")) { var recAC:ArrayCollection = dataTable.find("ovMap") as ArrayCollection; ovBMDat = recAC.getItemAt(0) as BitmapData var novBMDat:BitmapData = new BitmapData(ovBMDat.width + 2,ovBMDat.height + 2,true,0x000000); var srcRect:Rectangle = new Rectangle(0, 0, ovBMDat.width, ovBMDat.height); novBMDat.copyPixels(ovBMDat,srcRect,new Point(1,1)); } } var map:Map = SiteContainer.getInstance().controller.map; const decoder: JPEGEncoder = new JPEGEncoder(); map.logoVisible=false; map.scaleBarVisible=true; map.zoomSliderVisible = false; //SiteContainer.getInstance().mapManager.control.visible = false; //get the current background color of the map var currentMapColor:Object = map.getStyle("backgroundColor"); //set the background color to white map.setStyle("backgroundColor", "#CCCCCC"); //validate the changes map.validateNow(); var bmpDat:BitmapData = ImageSnapshot.captureBitmapData(map); if (novBMDat){ var pnt:Point = new Point((bmpDat.width - novBMDat.width), (bmpDat.height - novBMDat.height)); var rect:Rectangle = new Rectangle(0, 0, novBMDat.width, novBMDat.height); bmpDat.merge(novBMDat,rect,pnt,mult,mult,mult,mult); } const encoder: JPEGEncoder = new JPEGEncoder(80); map.logoVisible=true; map.scaleBarVisible=true; map.zoomSliderVisible = true; map.setStyle("backgroundColor", currentMapColor); //validate the changes map.validateNow(); const fileReference:FileReference = new FileReference(); fileReference.save(encoder.encode(bmpDat),"map.jpg"); }
if (dataTable.containsKey("ovMap"))
setTimeout(updateOverviewExtent, 4000);
private function setOverviewExtent(event:ExtentEvent):void { ovGraphic.geometry = map.extent; if (overviewMode == "dynamic"){ ovMap.extent = map.extent.expand(3); } try{ var ac:ArrayCollection = new ArrayCollection([]); var bmpDat:BitmapData = ImageSnapshot.captureBitmapData(ovMap); ac.addItem(bmpDat); addSharedData("ovMap",ac); } catch(err:Error){ } } private function updateOverviewExtent():void { ovGraphic.geometry = map.extent; if (overviewMode == "dynamic"){ ovMap.extent = map.extent.expand(3); } try{ var ac:ArrayCollection = new ArrayCollection([]); var bmpDat:BitmapData = ImageSnapshot.captureBitmapData(ovMap); ac.addItem(bmpDat); addSharedData("ovMap",ac); } catch(err:Error){ } }
<?xml version="1.0" encoding="utf-8"?> <!-- //////////////////////////////////////////////////////////////////////////////// // // Copyright © 2008 - 2009 ESRI // // All rights reserved under the copyright laws of the United States. // You may freely redistribute and use this software, with or // without modification, provided you include the original copyright // and use restrictions. See use restrictions in the file: // <install location>/FlexViewer/License.txt // //////////////////////////////////////////////////////////////////////////////// --> <BaseWidget xmlns ="com.esri.solutions.flexviewer.*" xmlns:esri ="http://www.esri.com/2008/ags" xmlns:mx ="http://www.adobe.com/2006/mxml" xmlns:mxeffects ="com.adobe.ac.mxeffects.*" xmlns:widgets ="com.esri.solutions.flexviewer.widgets.*" x ="600" y ="300" widgetConfigLoaded ="init()"> <mx:Script> <![CDATA[ import com.esri.ags.events.LayerEvent; import mx.collections.ArrayCollection; import com.esri.ags.utils.WebMercatorUtil; import com.esri.ags.virtualearth.VETiledLayer; import com.esri.ags.events.ExtentEvent; import com.esri.ags.geometry.Extent; import com.esri.ags.geometry.MapPoint; import com.esri.ags.Graphic; import com.esri.ags.layers.GraphicsLayer; import com.esri.ags.layers.ArcGISDynamicMapServiceLayer; import com.esri.ags.layers.ArcGISTiledMapServiceLayer; import com.esri.ags.symbol.SimpleFillSymbol; import com.esri.ags.symbol.SimpleLineSymbol; import com.esri.ags.Map; import flash.events.MouseEvent; import mx.controls.Alert; import mx.graphics.ImageSnapshot; private var overviewMode:String; private var graphicLineSym:SimpleLineSymbol = new SimpleLineSymbol("solid", 0xFF0000, 0.8, 3); private var graphicPolySym:SimpleFillSymbol = new SimpleFillSymbol(null, 0xFF0000, 0.01, graphicLineSym); private var graphicsLayer:GraphicsLayer; private var ovGraphic:Graphic; private var xOff:Number; private var yOff:Number; private function init():void { if (configXML) { var type:String = configXML.mapservice.@type; var url:String = configXML.mapservice; var style:String = configXML.mapservice.@style; var label:String = configXML.mapservice.@label; overviewMode = configXML.mapservice.@mode; switch (type.toLowerCase()) { case "tiled": { var tiledlayer:ArcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer(url); tiledlayer.alpha = alpha; if (overviewMode == "dynamic") tiledlayer.addEventListener(LayerEvent.TILES_UPDATED,updateOvExtent); ovMap.addLayer(tiledlayer); break; } case "dynamic": { var dynlayer:ArcGISDynamicMapServiceLayer = new ArcGISDynamicMapServiceLayer(url); dynlayer.alpha = alpha; if (overviewMode == "dynamic") dynlayer.addEventListener(Event.COMPLETE,updateOvExtent); ovMap.addLayer(dynlayer); break; } case "virtualearth": { var veTiledLayer:VETiledLayer = new VETiledLayer(); veTiledLayer.id = label; veTiledLayer.tokenURL = url; veTiledLayer.environment = "production"; veTiledLayer.visible = true; veTiledLayer.alpha = alpha; veTiledLayer.mapStyle = style; veTiledLayer.name = label; ovMap.addLayer(veTiledLayer); break; } } graphicsLayer = new GraphicsLayer(); graphicsLayer.symbol = graphicPolySym; ovMap.addLayer(graphicsLayer); ovGraphic = new Graphic(); ovGraphic.geometry = map.extent; ovGraphic.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); ovGraphic.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); graphicsLayer.add(ovGraphic); map.addEventListener(ExtentEvent.EXTENT_CHANGE, setOverviewExtent); ovGraphic.addEventListener(Event.CHANGE,updateOvExtent); updateOverviewExtent(); setTimeout(updateOverviewExtent, 4000); } } private function setOverviewExtent(event:ExtentEvent):void { ovGraphic.geometry = map.extent; if (overviewMode == "dynamic"){ ovMap.extent = map.extent.expand(3); } try{ var ac:ArrayCollection = new ArrayCollection([]); var bmpDat:BitmapData = ImageSnapshot.captureBitmapData(ovMap); ac.addItem(bmpDat); addSharedData("ovMap",ac); } catch(err:Error){ } AddOVMap(); } private function updateOverviewExtent():void { ovGraphic.geometry = map.extent; if (overviewMode == "dynamic"){ ovMap.extent = map.extent.expand(3); } try{ var ac:ArrayCollection = new ArrayCollection([]); var bmpDat:BitmapData = ImageSnapshot.captureBitmapData(ovMap); ac.addItem(bmpDat); addSharedData("ovMap",ac); } catch(err:Error){ } AddOVMap(); } private function updateOvExtent(Evt:Event):void { callLater(AddOVMap,null); } private function AddOVMap():void { try{ var ac:ArrayCollection = new ArrayCollection([]); var bmpDat:BitmapData = ImageSnapshot.captureBitmapData(ovMap); ac.addItem(bmpDat); addSharedData("ovMap",ac); } catch(err:Error){ } } private function mouseDownHandler(event:MouseEvent):void { var ext:Extent = ovGraphic.geometry as Extent; var mPt:MapPoint = ovMap.toMapFromStage(event.stageX, event.stageY); xOff = ext.center.x - mPt.x; yOff = ext.center.y - mPt.y; ovGraphic.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); } private function mouseMoveHandler(event:MouseEvent):void { var mPt:MapPoint = ovMap.toMapFromStage(event.stageX, event.stageY); var tempX:Number = mPt.x + xOff; var tempY:Number = mPt.y + yOff; var ext:Extent = ovGraphic.geometry as Extent; var newext:Extent = new Extent(tempX - ext.width / 2, tempY - ext.height/ 2, tempX + ext.width / 2, tempY + ext.height / 2); ovGraphic.geometry = newext; if (!event.buttonDown) ovGraphic.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); } private function mouseUpHandler(event:MouseEvent):void { map.extent = ovGraphic.geometry as Extent; ovGraphic.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); } private function widgetOpenedHandler(event:Event):void { map.addEventListener(ExtentEvent.EXTENT_CHANGE, setOverviewExtent); setTimeout(updateOverviewExtent, 1000); } private function widgetClosedHandler(event:Event):void { map.removeEventListener(ExtentEvent.EXTENT_CHANGE, setOverviewExtent); } private function widgetMinimizedHandler(event:Event):void { map.removeEventListener(ExtentEvent.EXTENT_CHANGE, setOverviewExtent); } ]]> </mx:Script> <WidgetTemplate id="wTemplate" widgetClosed="widgetClosedHandler(event)" widgetOpened="widgetOpenedHandler(event)" widgetMinimized="widgetMinimizedHandler(event)"> <esri:Map id ="ovMap" width ="100%" height ="100%" panArrowsVisible ="false" zoomSliderVisible ="false" logoVisible ="false" scaleBarVisible ="false" panEnabled ="false" clickRecenterEnabled ="false" doubleClickZoomEnabled ="false" keyboardNavigationEnabled ="false" rubberbandZoomEnabled ="false" scrollWheelZoomEnabled ="false"> </esri:Map> </WidgetTemplate> </BaseWidget>
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.