51、问请教大师如何用vb实现mapgis投影变换.docVIP

  • 6
  • 0
  • 约1.05万字
  • 约 8页
  • 2017-02-06 发布于湖南
  • 举报

51、问请教大师如何用vb实现mapgis投影变换.doc

51、问请教大师如何用vb实现mapgis投影变换

51、问: 请教大师:如何用vb实现mapgis投影变换中的“用户的文件投影转换”的功能; 答: 使用以下方法,用对话框设置投影变换。 Function SetInPara([move As Integer], [EnableEdit As Integer = 1]) As Boolean ???? 在PRJTRANSCOMLib.PrjTrans对象中 52、问:mapgis的帮助中讲的图元号和实体号是一个意思吗? 答:GIS里的一些专业术语是有些比较难懂,图元号与实体号是一个意思。 53、问: _EditAtt这个函数包含联动的功能吗?我使用_EditAtt不能实现图形的联动,请问还需要使用别的函数吗? 答: _EditAtt函数会弹出一个窗体,返回值是这个窗口的句柄。 程序实现联动就是这个窗口和图形所在的视图窗口之间互相通信的结果。 当在属性编辑窗口中编辑某个记录的字段时会像视图窗口发送消息MGM_FLASH_GRAPH,该消息的wParam参数为属性窗口状态,它可 以是下列宏定义之一: BEGIN_EDATT:?? 表示开始编辑属性。 EDITING_ATT:?? 表示正在编辑属性。 END_EDATT??? :?? 表示结束编辑属性。 属性窗口发送此状态时,属性窗口没有撤消。一般情况,属性窗口发送的所有MGM_FLASH_GRAPH消息中,开始时为BEGIN_EDATT状 态,最后为END_EDATT状态,中间为若干EDITING_ATT状态。 lParam参数为指向MGMSG结构的指针,该指针所指结构空间属于属性编辑窗口,MGMSG结构如下: //图元实体信息结构 typedef struct ???? {short ai;?? //工作区号。 ?????? short type; //图元类型,为LIN,PNT,REG,NOD,NET,TBL之一。 ???????? long elmi;?????? //图元号。 ???? }ENTITY_MSG; //图元重新显示信息结构 typedef ENTITY_MSG MGMSG; 通过lParam参数,通知hWnd窗口当前记录对应的图元是什么。 当联动状态为断开时,属性窗口不给hWnd窗口发送当前图元消息。 当鼠标在视图窗口双击选中一个实体时应该像属性窗口发送GoToAtt的消息,让属性跳转到和空间实体对应的属性处。 具体的程序可参考VC开发第五章示例 54、问:gisattedit控件问题 请问大虾,《mapgis组件开发手册》中说gisattedit的GotoAtt方法,当参数rcdNo=0时,弹出跳转条件对话框。但是我试过,却无法实现。我把gisattedit与工作区绑定后,仍然不能用,不知有何奥妙? 答: Dim area As PntArea Set area = New PntArea ????? If area.Load() Then ????????? EditView.PntArea = area ????????? EditView.LinkAttSwitch = True ????????? EditView.AttachAttWorkArea area, area.Type ????????? GisAttEdit.AttachArea area, area.Type ????? End If Private Sub EditView_CurAttElement(ByVal lNo As Long) ???? GisAttEdit.GotoAtt lNo End Sub Private Sub GisAttEdit_CurRcdFldNo(ByVal rcdNo As Long, ByVal fldNo As Integer) ???? EditView.GotoElement area, rcdNo, area.Type End Sub 55、问: 怎么在裁剪的时候不用装入裁剪框文件,而是直接在工作区内用鼠标画一个框子. 答:不是在工作区中画一个框子,而是在View上拉一个框子,记录下框子的各个点添加到一个新的工作区中,将这个工作区作为裁减框工作区。裁减完成后可以设置这个工作区的改变标志为false,在关闭它。 56、问:用_OverlayPntReg函数,叠加在某一区上的点时,如何不让区文件的属性追加到点属性上!谢 答:你可以将点中和区属性有关的一些属性字段删除。 57、问:在MAPGIS里如何获得一个区的最长的边,并且怎么知道它的方位 答: 对每一个区调用_GetReg(...,rdat,len....); double?? maxLength=0; double?? tempLength; double?? maxLi=0; for(

文档评论(0)

1亿VIP精品文档

相关文档