找回密码
 注册
Simdroid-非首页
查看: 216|回复: 0

[其他] 结合MapGIS进行污染物扩散分析

[复制链接]
发表于 2019-11-5 15:52:57 | 显示全部楼层 |阅读模式 来自 江苏苏州
地理信息系统(GIS)是用于存储和处理与地理空间分布相关信息的集合。由于GIS具有独特的混和数据结构和地理分析功能,在各行业的应用也越来越广泛。GIS平台包括商业化和开源两种,常用的开源GIS平台如ArcGis、SuperMap等功能强大,效率很不错,但毕竟是商业化的。MapWinGis在开源GIS项目中的效率是相当不错的,本文主要对其进行介绍。
MapWInGis的开发语言是VC,基于微软的COM思想编写,为开发人员提供了一个名为MapWInGis的ActiveX控件。开发人员可以利用这个控件在自己的系统中添加GIS的各种功能,包括:地图的显示,图层上点、线以及图像的绘制,测量长度面积,存取数据的一系列的工作。功能十分丰富,可以满足绝大部分的用户需求。

下面对基于MapWinGis开发的一般步骤进行介绍。
一、 确定map coordinate system和projection
无论将要编写何种类型的GIS应用,关于map coordinate system以及projection的选择都是第一位的。MapWinGis提供了以下的一些选项。

手动设置时MapWinGis提供了多种导入形式,包括EPSG、proj4等,对于不同格式的projection的具体信息可以至www.spatialreference.org查询;
选择从数据中获取时,MapWInGis提供了GrabProjectionFromData方法,此方法默认为true,若没有为应用指定projection,那么在导入第一个带有prj信息的数据时会自动将其设定为此应用的projection,此时导入不同的projection的数据时,MapWinGis会发出警告;
也可以选择完全不使用projection,此时数据不存在地理位置信息,将只能按照像素坐标进行操作。

确定projection后还可以根据实际需求选择不同的tiles以获取自己需要的信息,如下:

二、 确定需要操作的数据类型
MapWinGis支持大量的数据类型,具体的信息参见下方的表格:

对不同的数据类型MapWinGis提供了不同的类进行管理,可以选择各自的接口进行处理。另外,为了应对大量数据的导入可能导致的混乱,MapWinGis提供了FileManager类,可以打开MapWinGis支持的所有格式的数据,可以大量减少代码量。下图是一个生成了GridColorScheme的Grid在地图上的显示:

增加了网格之后效果如下:
三、确定交互的操作和具体的功能
管理数据和用户交互的类是AxMap,其中有大量的事件和消息,用于对不同的操作进行响应,下图详细展示了AxMap提供的具体功能。

测量距离:

矩形区域内的平均值,最大值以及最小值:

非规则区域内的平均值,最大值以及最小值:


某点的具体信息以及调整:

等等。
四、 涉及到的方法
下面对以上的功能实现需要涉及到的方法进行介绍:
1.Grid的具体信息存储在GridHeader类,所以想要修改存储在grid中的数据需要使用GridHeader而不是Grid。
2.手动创建的Grid不带有地理位置信息,需要手动进行设置,并且导入projection只能以string进行操作,如proj4、ESPG,所以根据不同的projection需要的信息至www.spatialreference.org进行查询。
3.手动创建的Grid仅仅存储了信息,在导入至图层时,若不指定Render style会看不到实际的效果,Grid Rendering有两种方式。
2.手动创建的Grid不带有地理位置信息,需要手动进行设置,并且导入projection只能以string进行操作,如proj4、ESPG,所以根据不同的projection需要的信息至www.spatialreference.org进行查询。
3.手动创建的Grid仅仅存储了信息,在导入至图层时,若不指定Render style会看不到实际的效果,Grid Rendering有两种方式。

所以需要对GridColorScheme的类进行了解。
4.有时需要对Grid中的数据进行查询,修改和统计,这里涉及到AxMap的事件和消息,像素坐标系、世界坐标系、投影坐标系的相互转换,鼠标工具的选择等一系列操作。需要对GeoProjection、AxMap和Util类进行了解。需要注意的是Util类是一个通用类,里面有很多使用的功能,当你在特定的类里找不到你需要的接口时,不妨到这里来试试,可能会有收获。
五、 总结
以上对MapWinGis的开发过程进行了简单的介绍,并以Grid为例说明了GIS应用开发的过程中类本身复杂的数据结构和类之间复杂的交互性。这些因素都要求GIS的开发者不能管中窥豹,要对全局有足够的了解才能使得开发顺利的进行。



您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-20 07:18 , Processed in 0.028679 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表