flex导入shp文件

  以下为类的全部代码:

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,这个上面用于显示图形。

posted @   junjunang  阅读(664)  评论(1编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
点击右上角即可分享
微信分享提示