以下为类的全部代码:
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,这个上面用于显示图形。