Created
December 23, 2010 14:38
-
-
Save odoe/753059 to your computer and use it in GitHub Desktop.
Component that will Magnify a source ESRI Map.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.lacsd.sf.view.components { | |
import com.esri.ags.Map; | |
import com.esri.ags.events.MapEvent; | |
import com.esri.ags.geometry.MapPoint; | |
import com.esri.ags.layers.ArcGISDynamicMapServiceLayer; | |
import flash.events.Event; | |
import mx.collections.ArrayCollection; | |
import mx.logging.ILogger; | |
import org.lacsd.util.LogUtil; | |
import spark.components.supportClasses.SkinnableComponent; | |
[Event(name="sourceMapChange",type="flash.events.Event")] | |
public class MagnifyWindow extends SkinnableComponent { | |
public static const SOURCEMAP_CHANGE_EVENT:String = "sourceMapChange"; | |
protected static const logger:ILogger = LogUtil.getLogger(MagnifyWindow); | |
public function MagnifyWindow() { | |
super(); | |
} | |
[SkinPart(required="true")] | |
public var map:Map; | |
[Bindable] | |
protected var mapLayers:ArrayCollection; | |
private var _sourceMap:Map; | |
private function onMapLoad_handler(event:MapEvent):void { | |
if (sourceMap) { | |
map.logoVisible = false; | |
map.extent = sourceMap.extent; | |
map.scale = 1128; | |
map.removeEventListener(MapEvent.LOAD, onMapLoad_handler); | |
} | |
} | |
override protected function partAdded(partName:String, instance:Object):void { | |
super.partAdded(partName,instance); | |
if (instance == map) { | |
map.addEventListener(MapEvent.LOAD, onMapLoad_handler, false, 0, true); | |
map.layers = mapLayers; | |
} | |
} | |
public function addOperationalLayer(dl:ArcGISDynamicMapServiceLayer):void { | |
if (!mapLayers) | |
logger.warn("mapLayers ArrayCollection is null. Add detailed layer before operational layers"); | |
else { | |
var lyr:ArcGISDynamicMapServiceLayer = new ArcGISDynamicMapServiceLayer(dl.url); | |
mapLayers.addItem(lyr); | |
} | |
} | |
public function parentContainerCenterPosition(pX:Number, pY:Number):void { | |
var mp:MapPoint = sourceMap.toMapFromStage(pX, pY); | |
map.centerAt(mp); | |
} | |
public function setDetailedLayer(dl:ArcGISDynamicMapServiceLayer):void { | |
mapLayers = new ArrayCollection(); | |
var detail:ArcGISDynamicMapServiceLayer = new ArcGISDynamicMapServiceLayer(dl.url); | |
mapLayers.addItem(detail); | |
} | |
[Bindable(event="sourceMapChange")] | |
public function get sourceMap():Map { | |
return _sourceMap; | |
} | |
public function set sourceMap(value:Map):void { | |
if (_sourceMap != value) { | |
_sourceMap = value; | |
dispatchEvent(new Event(SOURCEMAP_CHANGE_EVENT)); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment