以下为类的全部代码:
package components{ import Hymn.Classes.LoadDataClass; import Hymn.Event.OpenFileEvent; import Hymn.OpenFile.OpenFileClass; import com.esri.ags.Graphic; import com.esri.ags.Map; import com.esri.ags.layers.GraphicsLayer; import mx.controls.Alert; import spark.components.mediaClasses.VolumeBar; public class shpLoad { protected var openFileClass1:OpenFileClass; protected var openFile1:OpenFileEvent; protected var myGra1:GraphicsLayer; protected var OpenFileResult1:Hymn.Classes.LoadDataClass; public function shpLoad(myGra:GraphicsLayer) { //Alert.show("good after noon"); myGra1 = myGra; openFileClass1 = new OpenFileClass(); openFileClass1.addEventListener(OpenFileEvent.FILESELETED,openFile); openFileClass1.addEventListener(OpenFileEvent.FILELOADED,openFile); openFileClass1.addEventListener(OpenFileEvent.OPENFILEERROR,openFile); openFileClass1.addEventListener(OpenFileEvent.FILEANALYZEED,openFile); openFileClass1.OpenFile(); } /*public function returnGraphic():GraphicsLayer { return myGra1; } */ public function set myGra1Set( value:GraphicsLayer):void { myGra1 = value; } public function get myGra1Get():GraphicsLayer { return myGra1; } public function openFile(event:OpenFileEvent):void { switch(event.type) { case OpenFileEvent.FILESELETED: openFileClass1.LoadFile(); break; case OpenFileEvent.FILELOADED: switch(event.FileType) //打开的文件必须保证为shp文件 { case OpenFileClass.SHP: openFileClass1.ReadShp(-1,true); } break; case OpenFileEvent.FILEANALYZEED: OpenFileResult1 = event.LoadDataItem; myGra1.clear(); for each (var i:Graphic in OpenFileResult1.GraphicsArr) { //i.symbol = default; this.myGra1.add(i); } this.myGra1.refresh(); //Hymn.LocationMethods.LocationToGraphics(myMap,myOpenFileResult.GraphicsArr); break; case OpenFileEvent.OPENFILEERROR: Alert.show(OpenFileEvent.OPENFILEERROR.toString(),"错误提示:"); break; } Alert.show("goog"); } }}
使用此代码定义一个shplod的类,然后在你的主程序中调用此类,
方法如下,此类的主要思想是,将主程序中要显示的graphicslayer作为参数调入此类,然后此类在此层上添加本地的文件,并显示后,返回值,主程序调用此返回值,并显示即可。
private function importShpFile():void { myGraphicLayer.clear(); myShp = new shpLoad(myGraphicLayer); myGraphicLayer = myShp.myGra1Get; }
当然需要定义一个graphicslayer,这个上面用于显示图形。
转载于:https://www.cnblogs.com/arcserver/archive/2012/10/22/2733829.html
相关资源:各显卡算力对照表!