用MapX进行GIS开发

合集下载

MapX培训教程

MapX培训教程

MapX培训教程引言MapX是一款强大的地图制作和地理信息系统(GIS)软件,广泛应用于地图制作、空间数据分析、地图发布等领域。

为了帮助用户更好地了解和掌握MapX的使用方法,本教程将详细介绍MapX的基本操作、功能模块和实际应用案例。

通过本教程的学习,用户将能够熟练使用MapX进行地图制作和空间数据分析,为工作和研究提供有力的支持。

第一章:MapX概述1.1MapX简介MapX是一款基于Windows操作系统的地图制作和地理信息系统软件,由美国Intergraph公司开发。

MapX提供了丰富的地图制作和空间数据分析功能,支持多种地图投影和坐标系,可以处理各种类型的地理数据。

1.2MapX的特点(1)强大的地图制作功能:MapX提供了丰富的地图制作工具和符号库,可以制作高质量的地图。

(2)灵活的空间数据分析:MapX支持多种空间分析功能,如缓冲区分析、叠加分析、网络分析等。

(3)易于使用的界面:MapX的界面直观易用,用户可以快速上手。

(4)与其他软件的兼容性:MapX可以与其他GIS软件和办公软件无缝集成,方便数据交换和共享。

第二章:MapX基本操作2.1安装和启动用户需要从官方网站MapX安装包,并按照提示完成安装。

安装完成后,双击桌面上的MapX图标即可启动软件。

2.2地图制作(1)打开地图文件:“文件”菜单,选择“打开”,在弹出的对话框中选择地图文件(.mxd)。

(2)添加图层:“图层”菜单,选择“添加图层”,在弹出的对话框中选择需要添加的图层。

(3)调整图层顺序:在“图层”面板中,拖动图层上下移动,以调整图层顺序。

(4)设置图层样式:在“样式”面板中,选择合适的符号和颜色,为图层设置样式。

(5)添加标注和图例:“标注”菜单,选择“添加标注”,在地图上添加标注。

“图例”菜单,选择“添加图例”,在地图上添加图例。

(6)保存和输出地图:“文件”菜单,选择“保存”,将地图保存为.mxd文件。

“文件”菜单,选择“输出”,将地图输出为图片或PDF 文件。

利用MapX开发GIS系统代码

利用MapX开发GIS系统代码

Const SEARCH_DISTANCE_TOOL As Integer = 1Const SEARCH_RECTANGLE_TOOL As Integer = 2Const SEARCH_POINT_TOOL As Integer = 4Dim m_layer As LayerDim m_Fea As MapXLib.FeaturePublic searchLayer As ObjectConst RulerTool = 104Const InfoTool = 120Const PolyRulerTool = 105'选择图层Private Sub Combo1_Click()Set searchLayer = yers(Combo1.Text)List1.ClearEnd Sub'窗体加载Private Sub Form_Load()Map1.MousewheelSupport = miFullMousewheelSupportmnuViewToolBar.Checked = GetSetting(App.Title, "Settings", "ToolbarVisibility", True) mnuViewStatusBar.Checked = GetSetting(App.Title, "Settings", "StatusBarVisibility", True) mnuViewMapTool.Checked = GetSetting(App.Title, "Settings", "MapToolVisibility", True)Map1.CreateCustomTool 120, miToolTypePoint, miCrossCursorMap1.CreateCustomTool 104, miToolTypeLine, miCrossCursorMap1.CreateCustomTool 105, miToolTypePoly, miCrossCursorMap1.CreateCustomTool SEARCH_DISTANCE_TOOL, miToolTypeCircle, miRadiusSelectCursorMap1.CreateCustomTool SEARCH_RECTANGLE_TOOL, miToolTypeMarquee, miRectSelectCursorMap1.CreateCustomTool SEARCH_POINT_TOOL, miToolTypePoint, miCenterCursor StatusBar1.Panels(3).Text = Format(Date, "yyyy年m月d日")StatusBar1.Panels(4).Text = Format(Time, "h:mm:ss AM/PM")End Sub'调整窗体大小Private Sub Form_Resize()If Me.ScaleWidth > 420 And Me.ScaleHeight > Toolbar1.Height + StatusBar1.Height Then If Toolbar1.Visible = True ThenMap1.Top = Toolbar1.HeightMap1.Height = Me.ScaleHeight - Toolbar1.HeightMap2.Top = Toolbar1.HeightMap2.Height = (2295 * Map2.Width) / 3135Label1.Top = Toolbar1.Height + (2295 * Map2.Width) / 3135 + 150Label1.Height = 210Combo1.Top = Toolbar1.Height + (2295 * Map2.Width) / 3135 + 510Label2.Top = Toolbar1.Height + (2295 * Map2.Width) / 3135 + 960Label2.Height = 210List1.Top = Toolbar1.Height + (2295 * Map2.Width) / 3135 + 1320List1.Height = Me.ScaleHeight - Toolbar1.Height - Map2.Height - Label1.Height - Combo1.Height - Label2.Height - 878ElseMap1.Top = 0Map1.Height = Me.ScaleHeightMap2.Top = 0Map2.Height = (2295 * Map2.Width) / 3135Label1.Top = (2295 * Map2.Width) / 3135 + 150Label1.Height = 210Combo1.Top = (2295 * Map2.Width) / 3135 + 510Label2.Top = (2295 * Map2.Width) / 3135 + 960Label2.Height = 210List1.Top = (2295 * Map2.Width) / 3135 + 1320List1.Height = Me.ScaleHeight - Map2.Height - Label1.Height - Combo1.Height - Label2.Height - 878End IfIf Toolbar2.Visible = True ThenMap1.Left = 380Map1.Width = Me.ScaleWidth - 380 - 3135Combo1.Left = 380 + Map1.WidthList1.Left = 380 + Map1.WidthMap2.Left = 380 + Map1.WidthLabel1.Left = 380 + Map1.WidthLabel2.Left = 380 + Map1.Width'Frame1.Left = 380 + Map1.Width + 500'Text1.Left = 380 + Map1.Width + 350 + 500ElseMap1.Left = 0Map1.Width = Me.ScaleWidth - 3135Combo1.Left = Map1.WidthList1.Left = Map1.WidthLabel1.Left = Map1.WidthMap2.Left = Map1.WidthLabel2.Left = Map1.Width'Frame1.Left = Map1.Width + 500'Text1.Left = Map1.Width + 350 + 500End IfIf StatusBar1.Visible = True ThenMap1.Height = Map1.Height - StatusBar1.HeightEnd IfEnd IfEnd SubPrivate Sub List1_Click()End Sub'鹰眼图Private Sub Map1_MapViewChanged()Dim tempFea As MapXLib.FeatureDim tempPnts As MapXLib.PointsDim tempStyle As MapXLib.StyleMap2.GeoSet = Map1.GeoSetSet m_layer = yers.CreateLayer("Rectlayer")If m_layer.AllFeatures.Count = 0 ThenSet tempStyle = New MapXLib.StyletempStyle.RegionPattern = miPatternNoFilltempStyle.RegionBorderColor = 225tempStyle.RegionBorderWidth = 2Set tempFea = Map2.FeatureFactory.CreateRegion(Map1.Bounds, tempStyle)Set m_Fea = m_layer.AddFeature(tempFea)ElseWith m_Fea.Parts.Item(1).RemoveAll.AddXY Map1.Bounds.XMin, Map1.Bounds.YMin.AddXY Map1.Bounds.XMax, Map1.Bounds.YMin.AddXY Map1.Bounds.XMax, Map1.Bounds.YMax.AddXY Map1.Bounds.XMin, Map1.Bounds.YMaxEnd WithEnd Ifm_Fea.UpdateEnd Sub'状态栏坐标显示Private Sub Map1_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single) Dim MapX As DoubleDim MapY As DoubleMap1.ConvertCoord x, Y, MapX, MapY, miScreenToMapStatusBar1.Panels(1).Text = "X:" + Format(MapX, ".000")StatusBar1.Panels(2).Text = "Y:" + Format(MapY, ".000")End SubPrivate Sub Map2_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single) Dim MapX As DoubleDim MapY As DoubleMap2.ConvertCoord x, Y, MapX, MapY, miScreenToMap Map1.CenterX = MapXMap1.CenterY = MapYEnd Sub'线Private Sub mnuDrawLine_Click()Dim lyrInsertion As yerSet lyrInsertion = yers(2)lyrInsertion.Editable = TrueSet yers.InsertionLayer = lyrInsertionMap1.CurrentTool = miAddLineToolEnd Sub'点Private Sub mnuDrawPoint_Click()Dim lyrInsertion As yerSet lyrInsertion = yers(2)lyrInsertion.Editable = TrueSet yers.InsertionLayer = lyrInsertionMap1.CurrentTool = miAddPointToolEnd Sub'折线Private Sub mnuDrawPolyLine_Click()Dim lyrInsertion As yerSet lyrInsertion = yers(2)lyrInsertion.Editable = TrueSet yers.InsertionLayer = lyrInsertionMap1.CurrentTool = miAddPolylineToolEnd Sub'面Private Sub mnuDrawRegion_Click()Dim lyrInsertion As yerSet lyrInsertion = yers(2)lyrInsertion.Editable = TrueSet yers.InsertionLayer = lyrInsertionMap1.CurrentTool = miAddRegionToolEnd Sub'符号注释Private Sub mnuDrawSymbol_Click()Map1.CurrentTool = miSymbolToolEnd Sub'文本注释Private Sub mnuDrawText_Click()Map1.CurrentTool = miTextToolEnd Sub'圆形区域选择Private Sub mnuEditCircleSelect_Click()Map1.CurrentTool = miRadiusSelectToolEnd Sub'删除Private Sub mnuEditDelete_Click()Dim x As SingleDim Y As SingleDim ftr As FeatureDim lyr As LayerDim MapX As DoubleDim MapY As DoubleFor Each lyr In yersFor Each ftr In lyr.Selectionftr.Offset MapX - ftr.CenterX, MapY - ftr.CenterY ftr.UpdateNextNextEnd Sub'点选Private Sub mnuEditPointSelect_Click()Map1.CurrentTool = miSelectToolEnd Sub'多边形区域选择Private Sub mnuEditPolygonSelect_Click()Map1.CurrentTool = miPolygonSelectToolEnd Sub'矩形区域选择Private Sub mnuEditRectangleSelect_Click() Map1.CurrentTool = miRectSelectToolEnd Sub'旋转Private Sub mnuEditRotation_Click()frmRotation.ShowEnd Sub'清除选择Private Sub mnuExitClear_Click()Dim ftr As FeatureDim lyr As LayerFor Each lyr In yersFor Each ftr In lyr.Selectionlyr.Selection.ClearSelectionNextNextMap1.RefreshEnd Sub'捕捉Private Sub mnuExitSnap_Click()Map1.SnapToNodeSupport = TrueEnd SubPrivate Sub mnuFileClose_Click()Map1.GeoSet = ""End Sub'退出Private Sub mnuFileExit_Click()EndEnd Sub'导出Private Sub mnuFileExport_Click()Dim SaveFile As StringOn Error GoTo MapErrWith dlgCommonDialogCommonDialog1.DialogTitle = "Export Bitmap"CommonDialog1.CancelError = TrueCommonDialog1.Filter = ExportFormatString & " Windows Bitmap(*.bmp)" & ExportFormatExtCommonDialog1.ShowSaveIf Len(CommonDialog1.FileName) = 0 ThenExit SubEnd IfSaveFile = CommonDialog1.FileNameEnd WithIf ExportHeight = 0 Or ExportWidth = 0 ThenMap1.ExportMap SaveFile, ExportFormatElseMap1.ExportMap SaveFile, ExportFormat, ExportWidth, ExportHeight End IfExit SubMapErr:Select Case Err.NumberCase 32755Case ElseResume NextEnd SelectEnd Sub'新建Private Sub mnuFileNew_Click()Map1.GeoSet = ""Text1.Text = "Geoset Name"Map1.DisplayCoordSys.PickCoordSysyersDlgmstrLastUsedFile = mstrPathtoGSTs & "Geoset1.GST"End Sub'弹出式菜单Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single) If Button = 2 ThenMap1.PropertyPageEnd IfEnd Sub'打开Private Sub mnuFileOpen_Click()On Error GoTo JRS_GENERIC_ERROR_HANDLERWith comFileIOCommonDialog1.DialogTitle = "Open GeoSet"CommonDialog1.DefaultExt = "GST"CommonDialog1.Flags = cdlOFNHideReadOnlyCommonDialog1.FileName = mstrLastUsedFileCommonDialog1.Filter = "MapX geoset (*.GST) |*.GST|All Files(*.*)|*.*"CommonDialog1.FilterIndex = 1CommonDialog1.CancelError = TrueCommonDialog1.Action = 1End WithIf CommonDialog1.FileName <> "" ThenMap1.GeoSet = CommonDialog1.FileNameText1.Text = Map1.Geosets(Map1.GeoSet).UserNameMap1.Title.Visible = FalseMap2.Title.Visible = FalseEnd IfCall updateControlsExit SubJRS_GENERIC_ERROR_HANDLER:Select Case Err.NumberCase 32755Case ElseResume NextEnd SelectEnd Sub'打印Private Sub mnuFilePrint_Click()On Error GoTo JRS_GENERIC_ERROR_HANDLERCommonDialog1.CancelError = TrueCommonDialog1.Flags = 2CommonDialog1.ShowPrinterCommonDialog1.Action = 5Exit SubJRS_GENERIC_ERROR_HANDLER:Select Case Err.NumberCase 32755Case ElseResume NextEnd SelectEnd Sub'保存Private Sub mnuFileSave_Click()On Error GoTo JRS_GENERIC_ERROR_HANDLERWith comFileIOCommonDialog1.DialogTitle = "Save GeoSet"CommonDialog1.DefaultExt = "GST"CommonDialog1.Flags = cdlOFNOverwritePrompt Or cdlOFNHideReadOnly Or cdlOFNPathMustExistCommonDialog1.FileName = mstrLastUsedFileCommonDialog1.Filter = "MapX Geoset (*.GST)|*.GST|All Files(*.*)|*.*"CommonDialog1.FilterIndex = 1CommonDialog1.CancelError = TrueCommonDialog1.Action = 2End WithIf CommonDialog1.FileName <> "" ThenDim strName As StringIf Len(Text1.Text) > 255 ThenstrName = Left$(Text1.Text, 255)ElsestrName = Text1.TextEnd IfMap1.SaveMapAsGeoset strName, CommonDialog1.FileName End IfExit SubJRS_GENERIC_ERROR_HANDLER:Select Case Err.NumberCase 32755Case ElseResume NextEnd SelectEnd SubPrivate Sub mnuMapModify_Click()frmModifyTheme.ShowEnd SubPrivate Sub mnuMapModifyLegend_Click()frmModifyLegend.ShowEnd SubPrivate Sub mnuMapTheme_Click()frmCreateTheme.ShowEnd Sub'画圆查询Private Sub mnuSearchCircle_Click()Dim lyrInsertion As yerSet lyrInsertion = yers(2)lyrInsertion.Editable = TrueSet yers.InsertionLayer = lyrInsertionMap1.CurrentTool = SEARCH_DISTANCE_TOOLEnd Sub'单击查询Private Sub mnuSearchClick_Click()Dim lyrInsertion As yerSet lyrInsertion = yers(2)lyrInsertion.Editable = TrueSet yers.InsertionLayer = lyrInsertionMap1.CurrentTool = SEARCH_POINT_TOOLEnd Sub'点击查询Private Sub mnuSearchPointClick_Click()Map1.CurrentTool = 120End SubPrivate Sub mnuSearchQuery_Click()Form1.ShowEnd Sub'拉框查询Private Sub mnuSearchRectangle_Click()Dim lyrInsertion As yerSet lyrInsertion = yers(2)lyrInsertion.Editable = TrueSet yers.InsertionLayer = lyrInsertionMap1.CurrentTool = SEARCH_RECTANGLE_TOOL End Sub'按字段查询Private Sub mnuSelectField_Click()frmFind.ShowEnd Sub'全图显示Private Sub mnuViewAll_Click()Set Map1.Bounds = yers.BoundsEnd Sub'帮助Private Sub mnuHelpAbout_Click()frmAbout.ShowEnd Sub'添加图层Private Sub mnuMapAddLayer_Click()Dim sFile As StringOn Error GoTo MapErrWith dlgCommonDialogCommonDialog1.DialogTitle = "Add Layer"CommonDialog1.Flags = 0CommonDialog1.CancelError = TrueCommonDialog1.FileName = ""CommonDialog1.Filter = "MapInfo Tables (*.tab)|*.tab"CommonDialog1.ShowOpenIf Len(CommonDialog1.FileName) = 0 ThenExit SubEnd IfsFile = CommonDialog1.FileNameEnd Withyers.Add sFileExit SubMapErr:Select Case Err.NumberCase 32755Case ElseResume NextEnd SelectEnd Sub'图层Private Sub mnuMapLayer_Click()yersDlgCall updateControlsEnd Sub'投影Private Sub mnuMapProjection_Click()Map1.DisplayCoordSys.PickCoordSysEnd Sub'属性Private Sub mnuMapProterty_Click()Map1.PropertyPageEnd Sub'两点直线测量Private Sub mnuMeasureLine_Click()Map1.CurrentTool = 104End Sub'多点折线测量Private Sub mnuMeasurePolyLine_Click()Map1.CurrentTool = 105End Sub'线样式Private Sub mnuStyleLine_Click()Map1.DefaultStyle.PickLineEnd Sub'点样式Private Sub mnuStylePoint_Click()Map1.DefaultStyle.PickSymbolEnd Sub'面样式Private Sub mnuStyleRegion_Click()Map1.DefaultStyle.PickRegionEnd Sub'符号样式Private Sub mnuStyleSymbol_Click()Map1.DefaultStyle.PickSymbolEnd Sub'文本样式Private Sub mnuStyleText_Click()Map1.DefaultStyle.PickTextEnd Sub'居中显示Private Sub mnuViewCenter_Click()Map1.CurrentTool = miCenterToolEnd Sub'地图工具栏Private Sub mnuViewMapTool_Click()mnuViewMapTool.Checked = Not mnuViewMapTool.Checked Toolbar2.Visible = mnuViewMapTool.CheckedForm_ResizeEnd Sub'漫游显示Private Sub mnuViewPan_Click()Map1.CurrentTool = miPanToolEnd Sub'重生成Private Sub mnuViewRefresh_Click()Map1.RefreshEnd Sub'状态栏Private Sub mnuViewStatusBar_Click()mnuViewStatusBar.Checked = Not mnuViewStatusBar.CheckedStatusBar1.Visible = mnuViewStatusBar.CheckedForm_ResizeEnd Sub'常用工具栏Private Sub mnuViewToolBar_Click()mnuViewToolBar.Checked = Not mnuViewToolBar.CheckedToolbar1.Visible = mnuViewToolBar.CheckedForm_ResizeEnd Sub'放大显示Private Sub mnuViewZoomIn_Click()Map1.CurrentTool = miZoomInToolEnd Sub'缩小显示Private Sub mnuViewZoomOut_Click()Map1.CurrentTool = miZoomOutToolEnd Sub'两点直线测量函数和查询函数Private Sub Map1_ToolUsed(ByVal ToolNum As Integer, ByVal X1 As Double, ByVal Y1 As Double, ByVal X2 As Double, ByVal Y2 As Double, ByVal Distance As Double, ByVal Shift As Boolean, ByVal Ctrl As Boolean, EnableDefault As Boolean)Dim curFeatures As FeaturesDim obj As ObjectDim pt As New PointIf ToolNum = 104 ThenMap1.MapUnit = RulerUnitText2.Text = Map1.Distance(X1, Y1, X2, Y2)LineMea.ShowEnd IfIf ToolNum = 120 ThenDim pnt As New PointDim pnts As New MapXLib.PointsDim ftrs As FeaturesDim ftr As FeatureDim lyr As LayerDim strInfo As StringDim flds As MapXLib.FieldsDim fld As MapXLib.FieldDim ds As MapXLib.Datasetpnt.Set X1, Y1For Each lyr In yersSet ftrs = lyr.SearchAtPoint(pnt)If ftrs.Count > 0 ThenstrInfo = "Layer name:" & & vbCrLfstrInfo = strInfo & "Feature Name:" & ftrs.Item(1).Name & vbCrLfSet ds = Map1.DataSets.Add(miDataSetLayer, lyr)For Each fld In ds.FieldsstrInfo = strInfo & & ":"Set lyr.KeyField = fldstrInfo = strInfo & ftrs.Item(1).KeyValue & vbCrLfNextMsgBox strInfoExit ForEnd IfNextIf ftrs.Count = 0 ThenMsgBox "没有图元被选中"End IfEnd IfSelect Case ToolNumCase SEARCH_DISTANCE_TOOLDim dist As Doubledist = Map1.Distance(X1, Y1, X2, Y2)pt.Set X1, Y1Set curFeatures = searchLayer.SearchWithinDistance(pt, dist, miUnitMile, searchType)For Each obj In curFeaturesList1.AddItem & " id: " & obj.FeatureIDNextSet pt = NothingSet curFeatures = NothingSet obj = NothingCase SEARCH_RECTANGLE_TOOLDim rc As New MapXLib.Rectanglerc.Set X1, Y1, X2, Y2Set curFeatures = searchLayer.SearchWithinRectangle(rc, searchType)For Each obj In curFeaturesList1.AddItem & " id: " & obj.FeatureIDNextSet pt = NothingSet curFeatures = NothingSet obj = NothingSet rc = NothingCase SEARCH_POINT_TOOLList1.Clearpt.Set X1, Y1Set curFeatures = searchLayer.SearchAtPoint(pt)For Each obj In curFeaturesList1.AddItem & " id: " & obj.FeatureIDNextSet pt = NothingSet curFeatures = NothingSet obj = NothingCase ElseEnd SelectEnd Sub'多点折线测量函数Private Sub Map1_PolyToolUsed(ByVal ToolNum As Integer, ByVal Flags As Long, ByVal Points As Object, ByVal bShift As Boolean, ByVal bCtrl As Boolean, EnableDefault As Boolean) If ToolNum = 105 ThenDim i As IntegerDim DistanceSoFar As DoubleMap1.MapUnit = RulerUnitDistanceSoFar = 0#If Points.Count > 1 ThenFor i = 2 To Points.CountDistanceSoFar = DistanceSoFar + Map1.Distance(Points.Item(i).x, Points.Item(i).Y, Points.Item(i - 1).x, Points.Item(i - 1).Y)NextEnd IfIf Flags = miPolyToolEnd ThenText3.Text = DistanceSoFarPolyLineMea.ShowEnd IfEnd IfEnd SubPublic Sub updateControls()If yers.Count > 0 ThenDim lyr As yerCombo1.ClearFor Each lyr In yersCombo1.AddItem NextCombo1.ListIndex = 0Set searchLayer = yers(Combo1.Text)Set lyr = NothingEnd IfEnd Sub'常用工具栏Private Sub Toolbar1_ButtonClick(ByVal Button As ComctlLib.Button) Select Case Button.KeyCase "new"mnuFileNew_ClickCase "open"mnuFileOpen_ClickCase "save"mnuFileSave_ClickCase "print"mnuFilePrint_ClickCase "zoomin"mnuViewZoomIn_ClickCase "zoomout"mnuViewZoomOut_ClickCase "pan"mnuViewPan_ClickEnd SelectEnd Sub'地图工具栏Private Sub Toolbar2_ButtonClick(ByVal Button As ComctlLib.Button) Select Case Button.KeyCase "arrow"Map1.CurrentTool = miArrowToolMap1.SnapToNodeSupport = FalseCase "select"mnuEditPointSelect_ClickCase "circle select"mnuEditCircleSelect_ClickCase "rectangle select"mnuEditRectangleSelect_ClickCase "region select"mnuEditPolygonSelect_ClickCase "point"mnuDrawPoint_ClickCase "line"mnuDrawLine_Click Case "polyline" mnuDrawPolyLine_Click Case "region" mnuDrawRegion_Click Case "symbol" mnuDrawSymbol_Click Case "text" mnuDrawText_Click End SelectEnd Sub。

如何利用MapX构建地图应用

如何利用MapX构建地图应用

如何利用MapX构建地图应用一. MapX是什么?MapX是Mapinfo 公司的能向用户提供强大地图分析功能的ActiveX控件产品。

由于它是一种基于Windows 操作系统的标准控件,因而MapX能支持绝大多数标准的可视化开发环境如:V isual Basic, V isual C++ , Delphi, PowerBuilder等。

利用MapX,用户能够简单而快速地在自己的企业应用中嵌入地图化功能,增强企业应用的空间分析能力,实现企业应用的增值。

二.为什么必须使用MapX?很多企业最初建立的应用并不具有空间分析功能。

但是随着企业内部信息量的增加及信息的多元化和复杂化,很多信息采用传统的报表和文档方式已无法清晰地向用户表现。

此时,就需要利用MapX在企业应用中增加对信息的空间表现能力。

例如,利用MapX可以非常直观地将企业自身在空间位置上的分布特性及客户的住址、邮政编码等信息,以地图化的方式展示出来。

由于采用的是控件技术,因此编程人员在开发过程中并不需要掌握其它专业编程语言,便可轻松地将地图应用功能嵌入到企业应用中。

并且应用可以脱离Mapinfo的软件平台运行。

相反在构建上述的企业应用系统,如果选用Mapinfo Professional 作为地图化应用的平台,则需要很多技巧来实现企业应用中的公用信息管理系统与地图管理信息系统之间的信息交换与通讯。

三.MapX与MapBasic开发方式的区别在哪里?MapBasic是一种类Basic的地图应用开发语言,它具有自己的语法规则,同时它编译生成的执行程序要依赖于Mapinfo Professional平台。

对于想要快速建立以地图空间分析为主要功能的企业应用用户来说,选用MapBasic来开发是一种最快也最简单的开发方式。

因为MapBasic是一种集成化程度很高的开发语言,很多复杂的地图分析功能在MapBasic 中只需要一条或是几条语句便可以实现。

基于MapX技术的GIS开发

基于MapX技术的GIS开发

基于MapX技术的GIS开发摘要:简单介绍了MapX概念与特征,以具体的危化品监控系统为例,详细说明了GIS组件式开发的关键技术,充分论证了组件式开发的新趋势。

关键词:GIS;地理信息系统;MapX1 引言随着网络技术的不断发展,信息共享成为用户的迫切需求,利用Internet发布信息,为不同用户提供空间数据查询、联机分析处理与决策等功能是行业地理信息系统发展的一种趋势。

运用GIS系统对化工企业复杂的管道、设备、安全环保设施及其加工生产过程中的危化品等进行监督与管理,通过丰富的地图表现形式,将企业各项资源和资源所处的状态直观地展现在用户面前,使企业管理层、集团公司和上级主管部门等不同层次用户及时、准确、具体、系统地了解企业资源和安全环保状况,同时通过建立基于GIS的辅助决策支持系统,对生产、安全管理及企业发展规划提供决策支持,可以大大提高决策的及时性和科学性,提高企业管理和决策水平。

然而GIS也面临着自身的问题[1],比如数据结构复杂、功能体系庞大,不仅在构建单独的GIS应用系统时需要投入大盘人力、物力和财力,而且很难与其它非GIS系统集成,很大程度限制了GIS的发展与应用。

如今计算机软件技术的发展,尤其是软件领域中组件技术的兴起,为GIS的发展带来了生机。

2 MapX技术介绍2.1 MapX的发展及其特征MapInfo 是美国MapInfo 公司的桌面地理信息系统软件,是一种数据可视化、信息地图化的桌面解决方案。

MapInfo 公司把MapInfo 软件的市场定位总结为MapInfo = Mapping + Information(地图+信息),正是基于该思想,MapInfo 软件充分体现了小型、灵活、简单的特点[2]。

为了适应组件式软件开发的需要,MapInfo 公司在1996 年推出了基于ActiveX 技术的可编程控件MapX,该软件随着MapInfo 的升级而升级。

MapX 为开发人员提供了一个快速、易用、功能强大的地图化组件。

基于MapX的WebGIS的设计与实现

基于MapX的WebGIS的设计与实现

基于MapX 的Web GIS 的设计与实现薛华柱,张大永,王宝山(焦作工学院测量工程系,河南焦作 454000)摘要:文中通过对Web GIS 设计思想的分析,着重论述了基于Map X 的Web GIS 服务器端插件的实现原理,并介绍了一个城市电子地图导航系统应用实例。

关键词:Web GIS ;Map X ;CORBA/Java ;DCOM/ActiveX ;中图分类号:P208 文献标识码:B 文章编号:1001-358X (2004)02-0025-02 Internet 与GIS 结合产物———WebGIS 代表了GIS 系统发展的新潮流,WebGIS 为GIS 信息的高度社会化提供了可能。

WebGIS 作为数字地球的主要技术依托和载体,已成为IT 领域十分重要的研究方向[1]。

1 Web GIS 的实现方法(1)文件共享方式。

这是最早的网络GIS 实现技术,主要通过提供文件共享和目录映射来提供网络访问能力,在局域网下比较适合。

现在的系统已经很少采用这种方式。

(2)CGI 方式。

采用Client/Server体系结构。

客户端基本不含GIS 功能,只是Web 浏览器,通过公共网关接口CGI (Commom G ateway Interface )来动态访问服务器方GIS 数据和功能;服务器根据请求启动服务器端的GIS 应用程序,处理用户的请求,然后将处理结果作为HTML 页面发送回客户端。

几乎所有的GIS 处理功能都是在服务器端完成。

我们一般称之为侧重服务器端的Web GIS 。

(3)插件方式。

与CGI 方式不同,这是一种侧重客户方的策略。

它将服务器上的部分GIS 功能移到客户端,这部分功能被设计成能与网络浏览器交换信息的专门GIS 软件,称为GIS 插件。

这种GIS 插件不但可以增加网络浏览器处理地理空间数据的能力,而且还可以减少网络GIS 服务器的信息流量。

(4)分布式对象方式。

分布式对象技术是随着网络和面向对象技术的发展而发展起来的。

【精品】用MapX与C开发地理信息系统

【精品】用MapX与C开发地理信息系统

用MapX与C#开发地理信息系统第四章MAPX与C#实例 ........................................................................................................ 错误!未指定书签。

4.1M AP X图层建立................................................ 错误!未指定书签。

4.1.1MapX数据与地图的组织结构............................... 错误!未指定书签。

4.1.2实例1:建立/添加一个用户自定义图层..................... 错误!未指定书签。

4.1.3在MapX中使用栅格图层.................................. 错误!未指定书签。

4.1.4实例2:栅格图层的建立.................................. 错误!未指定书签。

4.2图元自动标注................................................ 错误!未指定书签。

4.2.1实例3:给图层加上自动标注功能.......................... 错误!未指定书签。

4.3M AP X地图集.................................................. 错误!未指定书签。

4.3.1什么是MapX地图集(Geoset)? ............................. 错误!未指定书签。

4.3.2实例4:打开已存在的地图集文件.......................... 错误!未指定书签。

4.3.3实例5:保存地图集...................................... 错误!未指定书签。

GIS应用开发_MAPX2_

GIS应用开发_MAPX2_

Set ftrAdded=yers(1).AddFeature(ftr)
要创建其他图元类型,只要将类型设为
miFeatureTypeRegion、miFeatureTypeLine或 miFeatureTypeSymbol,然后设置该图元类型相应 的属性。
创建新的独立图元对象后,必须将该图元对象附加
„创建文字图元并将其加入图层1
ftr=yers(1).AddFeature _
(Map1.FeatureFactory.CreateText(pt,北 京”) ) Nhomakorabea元的选取
MapX能在地图上选择图元,这样就可以在图元
上执行其他任务。用户可以单击地图选择一个或 多个图元(点、区域等)。MapX自动高亮显示被
到地图上后才能引用对象的所有方法和属性。把图 元附加到地图时地图的坐标系就与图元相关联。
要用到图元的Attach方法。
ftr.Attach Map1
创建地图图元--用FeatureFactory方法创建图元
FeatureFactory对象的方法可以创建新的地图
图元,也可通过对现有图元执行操作(例如缓 冲区)来创建图元。
在 MapX 中通过 Feature 对象来访问地图对象。
1.区域对象:覆盖给出地区的封闭对象。包括多边形、椭圆形 以及矩形。例如,国家的边界、邮政编码划分区的边界、销 售区域等等。 2.点对象:表示单个数据位置。例如,客户位置、餐馆、停车 计价器等等。 3.线对象:覆盖给定距离的开放对象。包括线、折线和弧线。 示例是街道、河流、能源线路。 4.文本对象:描述地图或其他对象的文本,例如标注和标题。
Perimeter 图元的周长(仅对区域图元有效) Point 图元的中心点。返回一Point对 象(仅对点图元和文字图元有效)

基于MapX组件的GIS系统开发与应用

基于MapX组件的GIS系统开发与应用

MapX是MapInfo公司向用户提供的具有强大地图分析功能的ActiveX控件产品。

编程人员在开发过程中可以选用自己最熟悉的开发语言,将地图功能嵌入到应用中,并且可以脱离MapInfo的软件平台运行。

1MapX的基本特点1.1图层化MapX是按图层组织地图,也就是说,将一幅计算机地图加工成多个层叠加的透明图层,每个图层包含了整个地图的一个不同方面。

为了便于对图层进行编辑和管理,可以通过控制图层集合(Layers)对象来协调处理各图层的关系,地图中的所有图层组成图层集合。

要在MapX中进行增加、删除或改变图层等操作,必须通过图层集合,每个地图对象都包含一个图层集合,图层集合又有图层对象(Layer)组成,因此通过图层集合可以访问地图中各个图层,MapX通过图层集合来控制地图。

1.2数据邦定Dataset集合用于实现地图和数据的邦定,每个地图都有一个数据集合,通过数据集合可以将用户的属性数据与地图空间数据连接起来。

数据邦定是将外部的数据引入MapX的过程。

外部数据可以是多种类型的数据库。

数据邦定后可以在地图上以图元浏览数据或基于这些数据创建专题渲染地图,实现以图形化方式显示属性数据查询结果。

1.3特征集合与特征查找在MapX中,地图由图层组成,图层又是由地图特征组成。

通常每个图层中只包含一种类型的特征。

例如,图层1包含的是点特征;图层2包含的是线特征;图层3包含的是区域特征。

在MapX中,一个图层的所有特征构成一个特征集合(Features)。

其中每个图元就是一个特征对象(Feature),图层对象(Layer)的许多方法返回该图层的特征集合,可以通过图层的查找属性(Find)搜索定位地理特征如线、符号或区域特征。

为了能够使用该方法,必须使查找图层的Mapinfo中存在一个索引字段。

1.4生成和编辑地理对象在利用MapX开发程序中,用户可以对地图图层、点、线、面图层,乃至样式、标注等进行随意编辑,并可以创建用户定制的图元等数据。

使用MapX开发GIS-MapX基础

使用MapX开发GIS-MapX基础
MapX易于使用且价格低廉. MapX能实现Pro 95%以上的功能。 MapX用于实时监控,GPS和监控等。 MapX提供面向对象开发,提供更为广阔的开发空间 MapX为WEBGIS的开发打下基础。
MapX主要欠缺的功能
数字化仪输入 排版输出 PRO工具管理器中所有的工具,如数据转换 Mapx不支持统计图
如果Visual Basic项目使用早期版本的MapX 使用以下步骤来将该应用程序转换到当前版本。 ① 打开要升级到当前版本的应用程序的项目。 ② 从表单删除地图对象。记录地图控件的名称,以 及任何可以从其默认设置更改的属性的名称。 ③ 从“工具”菜单,选择“定制控件”。 ④ 在 “ 可 用 控 件 ” 列 表 中 , 取 消 选 择 MapInfo MapX 控件,然后选择“确定”。 ⑤ 返回到“工具”→“定制控件”对话框,然后选 中 MapInfo MapX版本x控件(其中的x是当前的版本 号),再单击“确定”。
GIS软件与程序设计 软件与程序设计
第2部分 使用MapX开发GIS
严勇
8.1 MapX入门
MapX是Mapinfo公司的产品,是基于 Windows操作系统的ActiveX控件,因而 能支持绝大多数工业标准开发环境,如 Visual C++、Visual Basic、Delphi、 PowerBuilder、Visual 等。利 用MapX,能够简单快速地在软件中嵌入 地图化功能,增强软件的空间分析能力。 MapX采用基于MapInfo Professional相同 的地图化技术,可以实现MapInfo Professional具有的绝大部分地图编辑和 空间分析功能。
MapInfo的索引文件格式及数据关联机制
8.3.3 Map对象

MapX基础教程

MapX基础教程

在转换过程中需确保数据完整性、坐 标系一致性等。
格式转换工具
使用如GDAL/OGR、QGIS等工具进 行不同格式间的转换。
地图数据导入与导
导入方法
通过MapX的数据导入功能,将外部地图数据导入到项目中。
导出方法
支持将项目中的地图数据导出为常见格式,以便在其他软件或平 台中使用。
批量处理
提供批量导入导出功能,提高数据处理效率。
包括最短路径分析、连通性分析、资源分配等,可根据实际需求选择不同的网络分析类型 。
网络分析方法
通过MapX的空间分析工具箱,可以实现网络数据集的创建和管理,以及基于网络数据集 的各种网络分析功能。同时,MapX还支持自定义网络分析算法和参数设置,以满足不同 应用场景的需求。
05 地图可视化与制图
CHAPTER
专题地图类型
根据内容可分为自然地图、社会经济地图和环境 保护地图;根据专题现象概括程度可分为分析图 、组合图、综合图。
专题地图设计
确定主题和内容,选择合适的底图,设计符号和 色彩,编制图例和说明。
三维地图可视化
三维地图概念
利用计算机图形技术和 方法,将地形、地貌、 地物等地理信息以三维 立体的形式展现出来。
缓冲区类型
包括点缓冲区、线缓冲区和面缓冲区,可根据实际需求选择不同的 缓冲区类型。
缓冲区创建方法
通过MapX的空间分析工具箱,可以方便地创建各种类型的缓冲区, 并支持自定义缓冲区形状、大小等参数。
叠加分析
叠加分析概念
将两个或多个地理图层进行叠加,通过空间关系和属性数据的组 合,产生新的空间信息和属性信息。
地图符号化与注记
符号化概念
地图符号是表达地理现象的空间位置和属性特征的特定图形记号 ,是地图的语言。

MapX教程

MapX教程

Mapinfo的空间数据模型 Mapinfo采用“空间实体+空间索引”的空 间数据模型。 空间实体是地理实体的抽象,主要包括点、 线、区域和文本对象4种类型。各种空间实 体对象都维护着自己的所有属性。多个空 间实体组成一个图层。
空间索引的目的是对给定的空间坐标,能 够以尽快的速度搜索到坐标范围内的空间 对象。MapInfo采用R-Tree技术将空间实体 的最小外接矩形(MBR)存储在索引中, 并按从大到小的顺序进行索引搜索。建立 了空间索引,就能快速地进行空间分析了。
选择MapX组件,在窗口绘制一个地图图框。 定制MapX控件属性:在地图窗口单击右键选 择“特征”。设置地图集和属性。 运行程序。这样,我们没有写一行代码就 通过设计实现了MapX地图显示。
添加Mapx控件
设置地图集和属性
设置地图集属性 地图集的管理图层
结果程序
MapX 是一个标准OCX 组件,适用于组件 式(核心式)GIS开发。它可以被快速集成 到使用Visual Basic、PowerBuilder、 Delphi、Visual C++或其他面向对象的语言 的客户端应用程序中。开发人员可以在他 们熟悉的环境中工作,最终用户可以通过 他们熟悉的应用程序来访问地图数据。
选择:用户可以利用选择对地理数据重新组织, 实现地理分析。MapX提供了园、矩形、多边 形和点范围选择工具进行直观选择。 投影和坐标系:MapX完全支持地图坐标系和 MapX 投影。用户可以精确地调整地图的显示并在自 己的坐标系中处理X-Y数据。
栅格图像:MapX支持JPG、GIF、WMF、 BMP、TIF、PNG、PSD等多种图像格式。 自动标注:MapX可以自动向地图添加标注, 同时控制其属性及显示。 数据绑定:MapX 提供ADO、DAO、ODBC等 多种不同类型数据的绑定,实现地图数据和属 性数据的挂接。

基于MapX的GIS动态操作与实现

基于MapX的GIS动态操作与实现

基于MapX的GIS动态操作与实现基于MapX的GIS动态操作与实现摘要:分析了GIS和MapX的基本技术,提出了GIS信息显示系统中地图对象动态添加、删除以及地图整体显示效果适时变化的实现方法。

结合基于MapX的电力网络配置显示系统来说明这些技术。

关键词:GISMapX动态操作添加删除地理信息系统GIS(GeographicInformationSystem)是收集、管理、查询、分析、操作以及表现与地理相关的数据信息的计算机信息系统,能够为分析、决策提供重要的支持平台。

近年来,GIS广泛应用于基础设施(道路、电力等)的规划、自然资源的开发和利用、城市的发展规划、人口迁移与安置以及交通工具有定位导航和定位等复杂的区域开发,并取得了良好的效益。

随着GIS的迅猛发展,GIS越来越多地应用于信息显示系统的设计和实现,在信息显示系统中动态信息交互显示是一个重要内容。

例如在区域电力网络的管理方面,一个单独的变电站可以满足一定区域的供电需求。

某个地区是否需要增加一个变电站以满足该区域电力供应的需求,增加这个变电站后整个电力网络的覆盖范围达到什么水平,都可以通过动态GIS模拟实现,达到辅助决策的效果。

本文以区域电力设施配置显示系统的设计为背景,说明如何实现电力设施的添加、删除以及操作完成后适时显示系统的整体态势信息。

1MapX简介MapX是MapIofo公司向用户提供的具有强大地图分析功能的32位OCX控件。

编程人员在开发过程中可以选用自己最熟悉的可视化开发环境,轻松地将地图功能嵌入到应用中,并且可以脱离MapInfo的软件平台运行。

同时,MapX采用基于MapInfoProfessional的相同地图化技术,可以实现MapInfoProfessional具有绝大部分地图编辑和空间分析功能;MapX提供了各种工具、属性和方法,非常容易实现这些功能,因此近年来得到了迅猛发展。

1.1MapX的空间数据结构空间数据结构是GIS的基石。

20500002

20500002

基于MapX的GIS-T应用开发实例陈先龙摘要:MapX是一组供应用开发人员使用的GIS功能组件。

本文简要介绍了MapX的主要功能,并以广州交通流量信息系统(GZTFIS)为例,探讨了如何运用MapX+Visual Basic进行专题地理信息系统二次开发,论述了空间与属性之间的双向查询和鹰眼视图的实现过程,并给出了这两个问题的Visual Basic源代码。

关键字:GIS MapX 二次开发 查询 鹰眼视图1.引言近十几年来,随着计算机技术的快速发展,地理信息系统的各种应用在城市规划、管理方面越来越起到不可低估的作用。

在众多有关城市地理信息的应用中,城市交通地理信息系统的发展越来越受到地理学者、城市管理者的瞩目。

交通数据的种类繁多(包括属性数据、空间数据、影像数据等),数据量大,操作复杂,人工管理难度大。

交通地理信息系统的出现为交通数据的自动化管理提供了一个可行的途径。

这里以“广州交通流量信息系统(GZTFIS)”为例介绍用MapX开发GIS应用系统的开发过程和两个技术难点的实现方法。

2.MapX的特点现今GIS平台开发软件较多,较为常用的产品包括ESRI公司的Mapobject和Mapinfo 公司的MapX等。

这里选用Mapinfo公司的ActiveX插件产品MapX进行开发。

从MapX自身来看,作为应用较广泛的GIS平台软件,它具有以下特点:z它是基于Windows平台(Windows 95/98/NT)的产品,可以提供纯PC的配置方案。

使地图可以与数据库中的表格实现真正意义上的融合,是图、文、表、监控一体化的重要技术基础。

z支持VB、VC、Delphi、Power Builder等通用开发工具进行开发。

z MapX具有各种完善的图形分析功能且使用起来灵活方便。

z强大的地理信息查询与统计功能。

作为一个可以进行GIS平台开发的插件产品,MapX具有以下主要特性:z可以进行专题地图的分析统计工作;z可以无限深入的地图;z可以进行多种数据库的数据绑定;z灵活方便的注解、图层和选择控制;z有多种标准MapX工具,也可根据需要创建自定义工具;z可处理栅格图形。

用MapX与C开发地理信息系统

用MapX与C开发地理信息系统

用MapX与C#开发地理信息系统第四章MAPX与C#实例 (5)4.1M AP X图层建立 (5)4.1.1 MapX数据与地图的组织结构 (5)4.1.2 实例1:建立/添加一个用户自定义图层 (5)4.1.3 在MapX中使用栅格图层 (7)4.1.4 实例2:栅格图层的建立 (8)4.2图元自动标注 (9)4.2.1 实例3:给图层加上自动标注功能 (9)4.3M AP X地图集 (9)4.3.1 什么是MapX地图集(Geoset)? (9)4.3.2 实例4:打开已存在的地图集文件 (10)4.3.3 实例5:保存地图集 (10)4.4内置工具的使用 (11)4.4.1 使用标准工具 (11)4.4.3 实例6:内置标准工具的使用 (11)4.5自定义工具 (12)4.5.1 创建自定义工具 (12)4.5.2 实例7:创建测量长度和面积自定义工具 (13)4.6M AP X地图符号样式的定制 (14)4.7在图层上添加自定义图元 (15)4.7.1 实例8:鼠标点击向图层上添加图元 (15)4.7.2 实例9:给定坐标向图层上自动添加图元 (17)4.8获得图元属性 (20)4.8.1实例10:获取选定图元的属性 (20)4.9图元的选取 (21)4.9.1 实例11:实现InfoTip功能 (21)4.10图元属性的修改 (22)4.10.1 实例12:修改图元属性 (22)4.11实例13:图元的查询 (23)4.12实例14:鹰眼图的实现 (24)4.13数据绑定 (26)4.14GPS在GIS系统中的应用 (27)4.14.1定位信息的接收 (27)4.14.2定位信息的提取 (27)4.14.3定位信息在MapX中的显示 (28)4.14.4 实例15:GPS定位系统的应用 (28)4.15多媒体信息在GIS系统中的应用 (33)4.15.1 GIS中嵌入多媒体的方法 (33)4.15.2 实例16:在MapX系统中嵌入多媒体数据 (33)第五章MAPX与ORACLE结合 (35)5.1O RACLE数据库对GIS的支持 (35)5.1.1面向对象的数据库支持 (35)5.1.2.Oracle spatial组件的引入 (35)5.2循序渐进学习O RACLE S PATIAL在M AP X中的应用 (36)5.2.1 oralce服务器的安装 (36)5.2.2 准备由Oracle Spatial存储的图层文件 (36)5.2.3 Easyloader上载工具 (36)5.2.4 图层信息在Oracle中的存储结构 (38)5.2.5用程序实现MapX图元到oracle数据库的上载 (42)5.2.6 用程序实现oracle数据表数据下载至MapX中显示 (44)5.2.7 图元样式的还原 (46)5.3在网络环境下实现图层信息共享 (47)第六章MAPCTRL控件的开发方法 (57)6.1主要功能 (57)6.2开发步骤 (57)6.3程序实现 (58)第七章分发基于.NET平台的MAPX应用程序 (91) F RAMEWORK 概述 (91) F RAMEWORK 的主要组件和功能 (92)7.2.1公共语言运行库 (92)7.2.2 .NET Framework 类库 (92)7.3安装.NET F RAMEWORK (93)7.4M AP客户安装 (93)7.5制作安装程序 (93)第四章MapX与C#实例这一章我们通过若干专题来介绍用C#如何开发MapX应用程序。

GIS应用开发_MAPX4_

GIS应用开发_MAPX4_

Themes 集合
每个数据集都有专题集合。Themes 集合从专题 集合中创建、计数、添加或删除 Theme 对象。
方法
Add
描述
代码示范
创建专题并将它添加到 Map1.Datasets(1).Themes.Ad 特定数据集的 Themes d miThemeRanges “TotPop”, “My _Ranges Theme” 集合中。
设计专题图
专题变量 : 专题地图上显示的数据称为专题变量。根据所执行的 专题分析类型,地图可以显示一个或多个专题变量。范 围、格网渲染、等级符号、点密度、独立值都只检查一 个变量。直方图和饼图一次可以显示多个专题变量。也 可以创建双变量专题地图,在这里一个地图对象(例如 符号)表示两组不同数据。例如符号颜色代表一个专题 变量,符号大小代表另一个专题变量。 数据来源位置: 开始应用专题地图前,需要决定要显示哪些信息以及 信息驻留的位置。创建专题所用的数据来自数据集的 Field 对象或 Fields 集合。这些字段作为 Themes 集合 的 Themes.Add 方法的 Fields 参数来传递。
Field(S)
对象指定字段。如果使用多个变量创建专题,将接受一组字
段名称、索引或 Field 对象。这是可选参数,如果没有指定该 参数,那么 MapX 将使用 DataSet 的第一个数值字段。
指定专题地图名称。这是字符串类型的参数。它是可选参数,
Name
如果没有指定该参数,MapX 将生成一个名称,诸如 StatesBySales。
Name 为 Themes.Add 方法的参数,或者在创建专题时由 MapX 创建。这 是 Theme 对象的默认属性。
ThemeProper ThemeProperties 对象包含定义专题的信息(范围定义、显示样式设 ties 置等)。

用MapX进行GIS开发

用MapX进行GIS开发

用MapX进行GIS开发
赵振东
【期刊名称】《科技信息》
【年(卷),期】2008(000)018
【摘要】本文介绍了现在流行的软件开发方式,简介了地理信息系统中控件MapX,以具体实例阐述了在VB环境中使用MapX开发的过程.
【总页数】2页(P68-69)
【作者】赵振东
【作者单位】辽宁省第二测绘院,辽宁,沈阳,110034
【正文语种】中文
【中图分类】TP3
【相关文献】
1.运用MapXtreme技术进行我国海域WebGIS开发
2.基于Mapxtreme的公路军事运输WebGIS开发研究
3.基于Mapxtreme的公路军事运输WebGIS开发研究
4.基于MapXtreme的Web GIS开发技术
5.运用MapXtreme技术进行防汛网络GIS开发
因版权原因,仅展示原文概要,查看原文内容请购买。

第七讲组件式GIS与MapX基础

第七讲组件式GIS与MapX基础
MapInfo概论
第一讲 MapInfo简介及基本概念
第二讲 MapInfo基本操作—表
第三讲 MapInfo查询及分析 第四讲 空间分析及属性信息图形化 第五讲 OLE 嵌入与MapBasic 简介 第六讲 MapInfo集成地图开发 第七讲 组件式GIS与MapX基础 第八讲 MapX应用开发
Page 6
2、组件式GIS
是把GIS的各大功能模块划分为几个控件,每个控件完成不同的功 能。各个GIS控件之间,以及GIS控件与其它非GIS控件之间,可以方便 地通过可视化的软件开发工具集成起来,形成最终的GIS应用。控件如 同一堆各式各样的积木,它们分别实现不同的功能(包括GIS和非GIS功 能),根据需要把实现各种功能的“积木”搭建起来,就构成应用系统。 (1)组件式GIS开发平台的结构 • 基础组件:面向空间数据管理,提供基本的交互过程,并能以灵活 的方式与数据库系统连接; • 高级通用组件:由基础组件构造而成,面向通用功能,简化用户开 发过程,如显示工具组件、选择工具组件、编辑工具组件、属性浏览器 组件等等。它们之间的协同控制消息都被封装起来。这级组件经过封装 后,使二次开发更为简单;
(6)可创建对象:在MapX对象模型中,以下对象是可以被创建的:
AffineTransform、BindLayer、BitmapSymbols、CoordSys、Datum、 Feature、Fields、LayerInfo、Map、ODBCQueryInfo、Parts、Point、 Points、Rectangle、RowValue、RowValues、Style、Variables、 NotesQueryInfo、NotesViewInfo
1.1 GIS开发的三种实现方式
地理信息系统(GIS)根据其内容可分为两大基本类型: 一是工具型地理信息系统,也就是GIS工具软件包,如 MapInfo、ARC/INFO等,具有空间数据输入、存储、处理、 分析和输出等GIS基本功能;二是应用型地理信息系统,以 某一专业、领域或工作为主要内容,包括专题地理信息系统 和区域综合地理信息系统。随着地理信息系统应用领域的扩 展,应用型GIS的开发工作日显重要。 应用型地理信息系统的开发方式主要有以下三种:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P bi et2A obe 新 加椭 圆 ( 需 的矩 形 ) u l R cX sD u l c 所 的点 2的 X( 经 开 发 语 言 , 接嵌 入 MI 直 S开发 工具 ; 大 的 G S功 能 ; 强 I 开发 简 捷更 加 大 众化。 纬 度 ) 标 坐 P bi R cY sD u l 新 加椭 圆 ( 需 的矩 形 ) 点 2的 Y( u l et2A obe c 所 的 经 二、 p Ma X简 介 坐 MaX 是 Ma lf 司 向 用 户 提 供 的 具 有 强 大 地 图 分 析 功 能 的 纬 度 ) 标 p pno公


组 件 技 术 与 GI 展 S发
O J C 对 象 )Ma 象 ; B E T( : p对
T oN mb r (工 具 号 ) 是 创 建 出 代 表 画 椭 圆 工 具 的 ol u e 组 件 式 软件 技 术 已经 成 为 当 今 软 件 技 术 的 潮 流 之 ~ . 了 适 应 这 为 Ad El s T o ; i 种 技 术 潮 流 . I 件 象 其 他 软 件 一 样 ,已 经 或 正 在 发 生 着 革命 性 的 mi d lpe o l GS软 T p ( 型 )描 述 TZ A 的 行 为 。 个 参 数 取 的 ToT p C ntns y e类 : .- 这 olye os t a 变 化 .即 由 过去 厂 家 提 供 了全 部 系 统 或 者 具 有 二 次 开 发 功 能 的 软 件 .
它 非 G S控 件 之 间 , 可 以 方 便 地 通 过 可 视 化 的 软 件 开 发 工 具 集 成 起 I 实际编码 : P bi C nt 认 dE1 sT o =1 定 制 的加 椭 圆工 具 u l o s m d 1De 0l c i
来 , 成 最终 的 G S应 用 。 件 如 同一 堆 各 式各 样 的积 木 , 们 分 别 实 形 I 控 他 现 不 同的 功 能f 括 GS和 非 GS功 能 )根 据 需 要 把 实 现 各 种 功 能 的 包 J ቤተ መጻሕፍቲ ባይዱ ,
工 值 工 过 渡 到 提供 组 件 由用 户 自 己再 开 发 的 方 向 上 来 。无 疑 , 件 式 G S技 ( 具 类 型 常 量 ) 。 本 例 , 具 是 按 下 鼠标 左 键 到 弹 上 鼠标 左 键 的 过 组 I 术 将 给 整 个 GI 术 体 系 和 应 用模 式带 来 巨大 影 响 。 S技 程 中画 椭 圆 。本 例 中 取 的是 m T o y e on: iol pP it T C ro( 针 形 状 )使 用 该 工 具 时 , 工 具 在 地 图上 显示 的 形 状 。 usr指 : 该 GS技 术 的 发 展 , 软件 模 式 上 经 历 了 功 能 模 块 、 式 软 件 、 心 I 在 包 核 us C nt t 指 o a 式 软 件 , 而 发 展 到 组 件 式 G S和 W eG S的过 程 。 传 统 GS虽 然 在 该 参 数 从 C r r os ns ( 针 常 量 ) 中 取 值 。 本 例 选 用 的 是 从 I bI I Cos usr 那 该 功 能 上 已 经 比较 成 熟 , 是 由于 这 些 系 统 多 是 基 于 十 多 年 前 的 软 件 技 mirsC ro, 么 当选 择 该 工 具 时 , 工 具 将 在 地 图 上 显 示 成 十 字 但 术 开 发 的 , 于 独 立 封 闭 的系 统 。 同 时 , I 件 变 得 1益 庞 大 , 户 叉 形 状 ; 属 G S软 3 用 S iC ro CrC ro: 两 个 参 数 是 可 选 的 , 省 情 况 时 ,H F hf usr,t usr这 i l 缺 S IT 难 以掌 握 , 费用 昂贵 , 碍 了 GS的 普及 和 应 用 。 件式 GI 出 现 为 阻 I 组 S的 键和 C R T L键 不起 作 用 : 传 统 GS面 临 的 多种 问 题 提 供 了 全新 的解 决 思 路 。 I 组 件 式 GS的 基 本 思 想 是 把 cS的 各 大 功 能 模 块 划 分 为 几 个 控 J I IfT p ( 具 提示 ) olal 。 果 要 显 示 工 具 提示 , 要 将 此 no i s 工 :B oe/ 型 如 需 r ; u a e s 件 , 个 控件 完 成 不 同 的功 能 。 个 G S控 件 之 间 , 每 各 I 以及 G S控 件 与 其 参 数 设 为 t e 缺 省 值 为 fl 。 I
【 摘
程 。
要 】 文 介 绍 了现 在 流 行 的 软 件 开 发 方 式 , 本 简介 了地 理 信 息 系统 中控 件 MaX, p 以具 体 实例 阐述 了在 V 环境 中使 用 Ma X 开发 的 过 B p
【 键 词 】 件 ; p 属 性 ; B; I 关 组 Ma X; V GS
P bi et sD u l 新 加 椭 圆 ( 需 的 矩 形 ) 点 1的 Xf u l R cX1A obe c 所 的 经 纬 度 ) 标 坐 “ 木 ” 建 起来 . 构 成 应 用 系 统 。 积 搭 就 把 GS的 功 能 适 当 抽 象 , I 以组 件 形 式 供 开 发 者使 用 , 会 带 来 许 将 P bi et sD u l 新 加椭 圆 ( 需 的矩 形 ) 点 1的 Y( u l R cY1A obe c 所 的 经 坐 多 传 统 GS工 具 无 法 比 拟 的 优 点 : 巧 灵 活 、 格 便 宜 : 须 专 门 GS 纬 度 ) 标 I 小 价 无 I
维普资讯
科技信息
o I T技术论坛 0
S I N E&T C N OG F R T O CE C E H OL YI O MA I N N
20 0 8年
第 l 8期
用 Ma X进行 G S p I 开发
赵振 东
( 辽宁省第二测绘院 辽宁 沈阳 1 0 3 ) 0 4 1
相关文档
最新文档