论文部分内容阅读
摘要:在介绍MapObjects及其常用的坐标系对象基础上,针对全球矿产资源信息系统多投影坐标系并存的特点,采用其他GIS软件辅助完成坐标系的转换,同时利用MapObjects已有的坐标系对象,实现了该软件的图层转换、查询检索等功能。
关键词:MapObjects;全球矿产资源信息系统;投影坐标转换
中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)17-31197-01
Conversion projection coordinate for Global Mineral Resources Information System Based on MapObjects
HAN Jiu-xi1,YUAN Chun-hua1,2,CHEN Xiu-fa1
(1.Development and Research Center,China Geological Survey,Beijing 100083,China;2.China University Of Geoscience,Beijing100083,China)
Abstract:According to the characters and coordinate objects of Mapobjects, ArcView GIS as an assistant software was used to complete projection between different coordinate in Global Mineral Resources Information System(GMRIS). Based on the coordinates objects of MapObjects, GMRIS can provide map layers conversion、query and other functions.
Key words:MapObjects;global mineral resources information system;Conversion projection coordinate
1 引言
全球矿产资源信息系统(GMDAS)是通过GIS技术对全球矿产资源信息进行全面、系统的汇总、建库和展示,为国内外从事基础性、公益性、战略性地质工作的政府部门、科研机构和矿业公司了解全球矿产资源分布、开发和利用现状提供综合信息平台。该系统包括全球、大洲、国家、重要成矿带四个层次;每个层次包括地理、地质、矿产、矿业四类信息。数据形式分为:属性数据、GIS空间图形数据、文本数据。该系统涉及全球七大洲和二百多个国家的GIS空间图形数据,而各个国家根据其特定的地理位置选择相应的椭球体作为基准面,使之成为其数据采集的地理基础[1] ,因此该系统GIS坐标系统纷繁复杂。
2 MapObjects简介及其坐标系统
全球矿产资源信息系统(GMDAS)采用VB6.0与MapObjects控件编译完成。MapObjects(简称MO)是美国ESRI公司推出的基于COM技术的GIS组件。它由一个ActiveX控件(OCX)和约45个自动化对象组成,具有低成本、易开发、不需要其他GIS平台、使用环境广、通用性好等优点,但同时该组件也具有功能较弱、不利于网上发布等缺点。在坐标系统转换功能方面,较ArcView GIS等软件较弱。
MO中,每个Map或Maplayer对象都和一个坐标对象发生联系,坐标系对象可以是地理坐标系(GeoCoordSys)对象,也可以是投影坐标系(ProjCoordSys)对象。地理坐标系是MO中最常用的坐标系对象,它用经纬度描述地面上的位置;投影坐标系用x和y坐标来描述地面上的位置。
3 全球矿产资源信息系统(GMDAS )空间数据投影坐标系统的实现
为了提高系统运行效率,简化系统结构,本软件所有GIS空间数据都采用投影坐标系。
本系统包括两种GIS空间数据,一种为固有的图层文件,如:河流、湖泊、地质图等;另一种为运行本系统的查询、检索功能后所产生的临时图层文件,如:各个层次的矿床,矿山、矿业公司等图层。
3.1固有的GIS空间图层文件投影坐标系的转换
通过MO实现投影坐标转换,要求固有的图层文件中有一个*.prj文件,该文件含有坐标系信息,同时标准的投影坐标系的改变只能通过Type 属性来设置ProjectedCoordSys常数来完成,其他参数,如Central Meridian、Reference Latitude等无法设置,因此无法满足本系统的需求。我们采用ArcView GIS来辅助完成坐标转换功能的实现。在ArcView GIS的“View”菜单中选择“Properties”选项,点击“Projection…”按扭,通过选择“Custom”中“Projection”和其他的参数可以精确的设置所需的投影坐标系统。通过“Convert to Shapefile…”功能实现图层的保存,图层文件为*.dbf,*.sbn,*.sbx,*.shp,*.shx一组文件。本系统中,全球层次为Robinson投影;大洲层次中亚洲、非洲、南美洲为Lambert Equal-Area Azimuthal投影;北美洲和欧洲为Lambert Conformal Conic投影;大洋洲为地理投影。国家层次中各国家采用惯用的投影坐标系统,如蒙古采用Lambert Conformal Conic投影,Spheroid=Clarke 1866;Central Meridian=104;Reference Latitude=47等。
3.2临时图层文件坐标转换的实现
这类图层是通过运行系统的查询、检索功能后,形成的叠加在现有MAP或Maplayer上的GIS空间图层文件。分为两种
a. 通过查询该系统检索后台ACCESS数据库中的数据得到点坐标信息,根据X,Y坐标,判断现有的的Maplayer投影参数,以相同的投影叠加在Maplayer。(以查询得到有色金属矿床,然后叠加在亚洲图层上为例)。
Public Function DrawDep(strSQL As String, lname As String)//定义一画矿床函数,strSQL为查询在ACCESS中查询的结果,lname为图层名称
With TableDesc // 定义有色金属矿床图层空间文件的字段。
Set sel_gds = sel_dcn.AddGeoDataset(lname, moShapeTypePoint, TableDesc)
Dim transShape As Object
Dim toCS As New MapObjects2.ProjCoordSys
//把亚洲图层的投影参数付值给将要建立的空间GIS图层
toCS.Type = moProjCS_NorthPoleAzimuthalEquidistant
toCS.SetParameter moParm_CentralMeridian, 103
toCS.SetParameter moParm_CentralParallel, 35
//设置坐标系(亚洲)
g_Point.Set lon_d, lat_d//设置经,纬度坐标
Set transShape = toCS.Transform(fromGS, g_Point)
transShape:转换得到的新图形对象
toCS新坐标系对象
fromGS:初始的投影坐标系对象
g_Point:初始点图形对象
b、通过查询系统已有Maplayer图层信息,产生的新的GIS空间图层,叠加在已有的Maplayer上。(以在叠加了有色金属矿床的国家图层中,画一圆,查询圆内的有色金属矿床,生成GIS空间图层为例)
这种方式形成的GIS空间图层与上一种方式不同的地方在于鼠标园点位置的确定,以及半径单位与图层现有单位的一致,查询后得到的点信息后形成空间图层与方法a相同。
首先要完成圆心容器单位的转换。即圆心与Maplayer的单位一致
X = Me.ScaleX(X, vbTwips, Me.ScaleMode)
Y = Me.ScaleY(Y, vbTwips, Me.ScaleMode)
Dim loc As New MapObjects2.Point
Set loc = oMap.ToMapPoint(X, Y) //从twip转换为当前图层的容器单位,确定圆点坐标。
其次通过ToMapDistance方法来完成鼠标所画半径从容器单位到地图单位的转换,使在Maplayer上画的圆的尺寸随Maplayer的变化一致。
Dim theUnit As New MapObjects2.Unit
Dim tempLen As Double
Dim tempPrjCSys As New MapObjects2.ProjCoordSys
Set tempPrjCSys = frmMain.oMap.CoordinateSystem
tempLen = theUnit.factor * frmMain.oMap.ToMapDistance(0)
Set Recset = frmMain.oMap.Layers(il).SearchShape(g_SQLDP, 5, "") //查询范围内的信息
然后按照方法a实现投影坐标的确认,以及形成空间图层。
4 结论
笔者应用MO控件开发了基于VB6.0的多投影坐标系统的全球矿产资源信息系统(如图1所示)。通过ArcView GIS软件辅助完成了投影参数的转换,对MO所存在的缺陷进行了有效的规避,但在提高系统坐标投影转换灵活性方面还有很多工作要做。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:MapObjects;全球矿产资源信息系统;投影坐标转换
中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)17-31197-01
Conversion projection coordinate for Global Mineral Resources Information System Based on MapObjects
HAN Jiu-xi1,YUAN Chun-hua1,2,CHEN Xiu-fa1
(1.Development and Research Center,China Geological Survey,Beijing 100083,China;2.China University Of Geoscience,Beijing100083,China)
Abstract:According to the characters and coordinate objects of Mapobjects, ArcView GIS as an assistant software was used to complete projection between different coordinate in Global Mineral Resources Information System(GMRIS). Based on the coordinates objects of MapObjects, GMRIS can provide map layers conversion、query and other functions.
Key words:MapObjects;global mineral resources information system;Conversion projection coordinate
1 引言
全球矿产资源信息系统(GMDAS)是通过GIS技术对全球矿产资源信息进行全面、系统的汇总、建库和展示,为国内外从事基础性、公益性、战略性地质工作的政府部门、科研机构和矿业公司了解全球矿产资源分布、开发和利用现状提供综合信息平台。该系统包括全球、大洲、国家、重要成矿带四个层次;每个层次包括地理、地质、矿产、矿业四类信息。数据形式分为:属性数据、GIS空间图形数据、文本数据。该系统涉及全球七大洲和二百多个国家的GIS空间图形数据,而各个国家根据其特定的地理位置选择相应的椭球体作为基准面,使之成为其数据采集的地理基础[1] ,因此该系统GIS坐标系统纷繁复杂。
2 MapObjects简介及其坐标系统
全球矿产资源信息系统(GMDAS)采用VB6.0与MapObjects控件编译完成。MapObjects(简称MO)是美国ESRI公司推出的基于COM技术的GIS组件。它由一个ActiveX控件(OCX)和约45个自动化对象组成,具有低成本、易开发、不需要其他GIS平台、使用环境广、通用性好等优点,但同时该组件也具有功能较弱、不利于网上发布等缺点。在坐标系统转换功能方面,较ArcView GIS等软件较弱。
MO中,每个Map或Maplayer对象都和一个坐标对象发生联系,坐标系对象可以是地理坐标系(GeoCoordSys)对象,也可以是投影坐标系(ProjCoordSys)对象。地理坐标系是MO中最常用的坐标系对象,它用经纬度描述地面上的位置;投影坐标系用x和y坐标来描述地面上的位置。
3 全球矿产资源信息系统(GMDAS )空间数据投影坐标系统的实现
为了提高系统运行效率,简化系统结构,本软件所有GIS空间数据都采用投影坐标系。
本系统包括两种GIS空间数据,一种为固有的图层文件,如:河流、湖泊、地质图等;另一种为运行本系统的查询、检索功能后所产生的临时图层文件,如:各个层次的矿床,矿山、矿业公司等图层。
3.1固有的GIS空间图层文件投影坐标系的转换
通过MO实现投影坐标转换,要求固有的图层文件中有一个*.prj文件,该文件含有坐标系信息,同时标准的投影坐标系的改变只能通过Type 属性来设置ProjectedCoordSys常数来完成,其他参数,如Central Meridian、Reference Latitude等无法设置,因此无法满足本系统的需求。我们采用ArcView GIS来辅助完成坐标转换功能的实现。在ArcView GIS的“View”菜单中选择“Properties”选项,点击“Projection…”按扭,通过选择“Custom”中“Projection”和其他的参数可以精确的设置所需的投影坐标系统。通过“Convert to Shapefile…”功能实现图层的保存,图层文件为*.dbf,*.sbn,*.sbx,*.shp,*.shx一组文件。本系统中,全球层次为Robinson投影;大洲层次中亚洲、非洲、南美洲为Lambert Equal-Area Azimuthal投影;北美洲和欧洲为Lambert Conformal Conic投影;大洋洲为地理投影。国家层次中各国家采用惯用的投影坐标系统,如蒙古采用Lambert Conformal Conic投影,Spheroid=Clarke 1866;Central Meridian=104;Reference Latitude=47等。
3.2临时图层文件坐标转换的实现
这类图层是通过运行系统的查询、检索功能后,形成的叠加在现有MAP或Maplayer上的GIS空间图层文件。分为两种
a. 通过查询该系统检索后台ACCESS数据库中的数据得到点坐标信息,根据X,Y坐标,判断现有的的Maplayer投影参数,以相同的投影叠加在Maplayer。(以查询得到有色金属矿床,然后叠加在亚洲图层上为例)。
Public Function DrawDep(strSQL As String, lname As String)//定义一画矿床函数,strSQL为查询在ACCESS中查询的结果,lname为图层名称
With TableDesc // 定义有色金属矿床图层空间文件的字段。
Set sel_gds = sel_dcn.AddGeoDataset(lname, moShapeTypePoint, TableDesc)
Dim transShape As Object
Dim toCS As New MapObjects2.ProjCoordSys
//把亚洲图层的投影参数付值给将要建立的空间GIS图层
toCS.Type = moProjCS_NorthPoleAzimuthalEquidistant
toCS.SetParameter moParm_CentralMeridian, 103
toCS.SetParameter moParm_CentralParallel, 35
//设置坐标系(亚洲)
g_Point.Set lon_d, lat_d//设置经,纬度坐标
Set transShape = toCS.Transform(fromGS, g_Point)
transShape:转换得到的新图形对象
toCS新坐标系对象
fromGS:初始的投影坐标系对象
g_Point:初始点图形对象
b、通过查询系统已有Maplayer图层信息,产生的新的GIS空间图层,叠加在已有的Maplayer上。(以在叠加了有色金属矿床的国家图层中,画一圆,查询圆内的有色金属矿床,生成GIS空间图层为例)
这种方式形成的GIS空间图层与上一种方式不同的地方在于鼠标园点位置的确定,以及半径单位与图层现有单位的一致,查询后得到的点信息后形成空间图层与方法a相同。
首先要完成圆心容器单位的转换。即圆心与Maplayer的单位一致
X = Me.ScaleX(X, vbTwips, Me.ScaleMode)
Y = Me.ScaleY(Y, vbTwips, Me.ScaleMode)
Dim loc As New MapObjects2.Point
Set loc = oMap.ToMapPoint(X, Y) //从twip转换为当前图层的容器单位,确定圆点坐标。
其次通过ToMapDistance方法来完成鼠标所画半径从容器单位到地图单位的转换,使在Maplayer上画的圆的尺寸随Maplayer的变化一致。
Dim theUnit As New MapObjects2.Unit
Dim tempLen As Double
Dim tempPrjCSys As New MapObjects2.ProjCoordSys
Set tempPrjCSys = frmMain.oMap.CoordinateSystem
tempLen = theUnit.factor * frmMain.oMap.ToMapDistance(0)
Set Recset = frmMain.oMap.Layers(il).SearchShape(g_SQLDP, 5, "") //查询范围内的信息
然后按照方法a实现投影坐标的确认,以及形成空间图层。
4 结论
笔者应用MO控件开发了基于VB6.0的多投影坐标系统的全球矿产资源信息系统(如图1所示)。通过ArcView GIS软件辅助完成了投影参数的转换,对MO所存在的缺陷进行了有效的规避,但在提高系统坐标投影转换灵活性方面还有很多工作要做。
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。