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>
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Jste tu noví? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.