Flex 加载shp
至于gis格式比较常见的shp是开源的,网上开源的as代码也很多 这个支持的shp算比较好的 源码在这边https://files.cnblogs.com/files/haibalai/shp.rar,加载shp必须勾选两个文件shp和dbf,shp是存取图形geometry信息。dbf是属性信息
我这边写了个工具类调用
1 package widgetscadastre.DwgLoad 2 { 3 import com.esri.ags.Graphic; 4 import com.szpl.extension.util.shp.dbf.DbfHeader; 5 import com.szpl.extension.util.shp.dbf.DbfRecord; 6 import com.szpl.extension.util.shp.dbf.DbfTools; 7 import com.szpl.extension.util.shp.shp.ShpPolygon; 8 import com.szpl.extension.util.shp.shp.ShpReader; 9 import com.szpl.extension.util.shp.shp.ShpSymbol; 10 import flash.events.Event; 11 import flash.utils.ByteArray; 12 import mx.collections.ArrayCollection; 13 /** 14 * ... 15 * @author haibalai 16 */ 17 public class ShpLoadTool 18 { 19 20 public function ShpLoadTool() 21 { 22 23 } 24 25 private var _callFun:Function; 26 public function shpLoad(shpByteArray:ByteArray, dbfByteArray:ByteArray,callFun:Function):void 27 { 28 _callFun = callFun; 29 var index:int = 0; 30 const array:Array = []; 31 const shpReader:ShpReader = new ShpReader(shpByteArray); 32 const dbfHeader:DbfHeader = new DbfHeader(dbfByteArray); 33 while (shpReader.hasMore()) 34 { 35 var shpPolygon:ShpPolygon = shpReader.readShpPolygon(); 36 var dbfRecord:DbfRecord = DbfTools.getRecord(dbfByteArray, dbfHeader, index++); 37 array.push(new Graphic(shpPolygon, new ShpSymbol(), dbfRecord.values)); 38 } 39 40 _callFun.call(null,array); 41 42 } 43 44 } 45 46 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律