MAPGIS二次开发常见问题汇总.doc
《MAPGIS二次开发常见问题汇总.doc》由会员分享,可在线阅读,更多相关《MAPGIS二次开发常见问题汇总.doc(18页珍藏版)》请在咨信网上搜索。
1、问:如何用Delphi生成MAPGIS明码文件? 答:先利用手册看懂明码格式文件的格式,知道数据的组织方式,利用delphi的文件函数创建一个文本型文件,吧数据库中的数 据按照格式输出就是了。 2、问:ATT_STRU 和CATT_STRU的区别和联系? 答: ATT_STRU是以前老版本的东东,换成CATT_STRU试试.CATT_STRU中包含了属性结构的详细信息,具体用法可参见二次开发帮助 文档中第三章数据结构中关于属性字段描述结构,属性字段描述头和属性信息头的介绍,里面有该结构的详细内容。 3、问:请教关于“不能打开子图库...”的问题,急! 答:系统库路径不对,将mapfont.gis、mconfig.gis、netcfg.gis三个文件拷贝到执行目录即可。这几个语言件放在 MAPGIS\PROGRAM\目录中。或是运行MapEnv.exe可设置,该运行文件也同样在MAPGIS\PROGRAM\目录中。 4、问:如果只知道工作区 ai 能不能依次得到工作区中的图元号,该如何得到啊! 答: long i,pntn; short len; pnt_info inf; d_dot xy; char *dat; { _GetPntNum(ai,&i,&pntn);//取点数 for(i=1;i《pntn;i++) { if(_getpnt(ai,i,&xy,&dat,&len,&inf)<=0)//取点,返回值1/0/-1 成功/失败/删除 continue; …对该图元进行操作 } } i就是图元号 5、问:MapGis6.5的SDK函数NearPnt,到底应该如何用啊!跟以前的不同了,给个例子吧! 答: long WINAPI _NearPnt(short ai,D_DOT *xy,unsigned char *layerOnOffPad,short padLen,double *dis); ai 点工作区号 *xy 点位置号---比如鼠标的位置 layeronoffpad 图层开关标志,如不为空就只在打开状态的图层中查找 padLen 是layerOnOffPad的长度 出口 dis 返回距离 返回值成功返回点号,失败为0 6、问:如何屏蔽掉CPrjEditView中的右键功能!!! 答: editview有一个PopMenuControl属性,同理CPrjEditView也可以直接使用这个属性。 editview.PopMenuControl=-1 '///不显示菜单 =0 '///全部显示 =1 '///显示窗口菜单 =2 '///显示窗口+编辑菜单 =3 '///1+2+工具箱 7、问:如何将一个圆添加到一个工作区Ai中? 答: 先用_AppendLin函数在工作区画园(或画弧)的时候需要自己生成坐标点,比如说 D_DOT *dat, 这里dat的空间需自己申请,其长度为 long len,线的参数是 LIN_INFO inf,需要赋值,short ai为区工作区号,long i 为弧 段号。然后调用: i = _AppendLin(ai,dat,len,&inf); 输入弧段。然后添加区域 入口: ai - 区工作区号 long rdat[2] - 区域数据块 rdat[0] = 1(弧段个数),rdat[1]= i (i 为弧段号) rinf - 区域图形信息,需要赋值 然后调用: _AppendReg(ai,rdat,2,&rinf); 8、问:急关于_ShortFlash(ENTITY_MSG *pt,long num)函数! 答: sypedef struct {short ai 工作区号 short type 图元类型 long elmi 图元号 }ENTITY_MSG 定义一个ENTITY_MSG数组你把所要闪烁的图元一个一个加进去就行了。 9、问:实现查询多边形中图元的,并时期闪烁显示,应如何实现呢? 答:用_RectAskToList系列函数,然后可通过CGisView的闪烁机制完成。 10、问: CloseToolBox();//关闭工具箱 OpenToolBox(); //打开工具箱 我的程序只要进行了上面关闭和打开工具箱的操作后,在最后关闭时总是报错 不管是用上面的函数还是用右键提供的工具箱控制,到最后都会出现一个 Debug Assertion Failed! 的错误,谁能解释一下呢?答: 1、升级你的VC++(比如SP2、SP4) 2、出现这种问题不用管,在编绎成Releas版后,这个问题不会再出现。 11、问:我在本机器开发环境上运行开发的软件没什么问题。但在其他机器上,运行时出现找不到mfc42d.dll动态链接库文件。请帮忙! 答:你编的东西编译成DEBUG版,运行时需要mfc42.dll(这可不是MAPGIS的动态库,是VC的),如果你在编译时生成RELEASE版,到 别的机子上运行,就不用找mfc42d.dll了。 12、问:有没有获得工程文件名的函数,有没有通过工程文件,来获得工程中的个文件的路径的函数!!! 答:这个容易,兄弟用VC吧。打开有关PRJ的头文件(*.h,具体是哪个我记不清了,自已找找),看里面的函数声明,这比看帮 助或是开发指南要好用得多,而且看到的东西比什么指南都强。里面的函数英文名称确切,当然,如果你的英文不行,先去补习一下吧。 13、问:颜色不准,急!急!急!!!我公司新买的HP DJ800PS的喷墨打印机,mapgis的颜色库用的是地矿部的标准色库,可每次执行光栅化输出以后,出图颜色与色标差太多,光栅化参数按推荐100、75、61、100设的。 答: 又是该死的地矿部标准,那玩意是用6色印刷的,普通喷墨仪如果只有四色,怎么着都打不出一模一样的。 真要打出跟那标准一模一样,也简单,输出到EPS,花几千块,去印刷厂印一张回来。 14、问:请教各位大侠,logcount和count的区别?含义分别是什么? 答: 逻辑数:工作区中没有被删除的实体或者记录的个数。 物理数:工作区中所有的实体或者记录的个数,包括那些从被删除了的实体或者记录。 有如下等式: 物理数=逻辑数+被删除的个数+1 15、问: 请问有没有这样的函数? 可以求出两个区之间的公共弧段呢。 有的话,请告诉我关于这个函数的详细情况。谢谢! 答: 先取出第一个区的所有弧段,对每一条弧段取拓扑,看看拓扑的左区或者右区中有没有一个等于第二个区的区号。如果有,那么这条弧段就是这两个区的公共弧段。 16、问:如何对表文件(.wb)进行读某条记录的某个字段!!!请问各位大虾:如何取得表文件的记录数,如何判断该记录是被删除,如何取某记录的某个字段值。谢谢!! 答:MAPGIS.COM.CN下载区二次开发示例第5章有详细说明。 17、问:请问在delphi里怎么调用mapgis的api函数 答: 和调windows的api一样调用。 如: function _FindNearColor(r,g,b:Integer):Integer;stdcall;External'mapdsp60.dll' procedure TForm1.Button1Click(Sender: TObject); var aa:Integer; S: string[11]; begin aa:=_FindNearColor(255,255,255); Str(aa, S); ShowMessage(S); end; 18、问:在对话框中实现区填充颜色、图案预览和选择 答:自己重绘ListCtrl。在DrawItem函数中绘制每一个Item的图形(用MyDC)。 19、问:请教各位大虾,如何用vb编程实现mapgis中属性文件转换为dbf、mdb等文件? 答: 目前VB中还没有提供导出属性数据的二次开发的方法。 你可以用ADO或者其他的工具将mapgis的属性数据读出来再形成各自的记录集,最后专程dbf、mdb 20、问:请教有关cmyk和mapgis颜色阶的问题 答: 目前组件中还没有相应的方法。API中提供_FindNearCMYKColor、_FindNearColor等函数完成颜色的转换。 21、问:那位朋友有 MAPGIS明码文件格式说明 能不能给我发一份,急需,我实在是找不到。。谢谢。 答:详见mapgis地理信息系统使用手册数字制图篇 22、问: 1)如何能得到一条线的起始结点和终止结点(图元号)? 2)知道一个node的x,y坐标,如何能得到这个node的图元号? 答: 取该线的拓扑信息。LIN_TOP 该拓扑信息中第一个和第二个元素就是其实结点和中止结点的图元号 查找最近结点 long _NearNod(short ai,D_DOT *xy,double *rtnDis) 参数 入口 ai - 结点工作区号 *xy - 结点位置,xy为图形实际坐标 出口 *rtndis - 返回距离 返回值 成功返回结点号(>0),失败返回0 23、问:在VC++中,如何从一装入工程文件中,读出工程文件中每个文件的名称和类型?谢谢,大虾。 答: 7、取工程中某个文件的类型 short _PRJGetItemType(MAPPROJECT prj,int index) 参数: 入口 prj - 工程句柄 index - 文件位置 出口 无 返回值:index指定文件的文件类型(LIN/PNT/REG/MSIIMG) 9、取项目的文件名(带全路径) LPCTSTR _PRJGetItemName(MAPPROJECT prj,int index) 参数: 入口 prj - 工程句柄 index - 文件位置 出口 无 返回值:index指定文件的名称的字符串 10、取项目的文件名(不带全路径) short _PRJGetItemName1(MAPPROJECT prj,int index,char *name) 参数: 入口 prj - 工程句柄 index - 文件位置 出口 *name - 返回文件的名称 返回值:成功返回1,失败返回0 24、问:如果调用CGisEditView的编辑与修改什么的函数,那么视图窗口总是处于交互状态,请问如何取消? 答:先调用SetExtTool(NULL); 再调用SetOperateState(0); 25、问:我用VB来调试一些帮助中列举的例子,在加载工程的时候用bPRJLoadProject(),系统给出错误:bad dll calling convention.我不知道什么原因? 答:你在mapgis目录下的basic中找到 map_prj.bas ,对bPRJLoadProject的声明如下。 Declare Function bPRJLoadProject Lib "mapprj60.dll" Alias "#1" (Optional ByVal aInst As Integer = 0) As Long 你自己改为: Declare Function bPRJLoadProject Lib "mapprj60.dll" Alias "#1" (Optional ByVal aInst As Integer = 0, Optional ByVal fastOpen As Integer = 0) As Long 26、问:请问用delphi调用mapgis的dll一定要用vc的dll对吗 答: 不用重装VC。只需要到别的地方去找一个MFC42D。DLL文件复制到SYSTEM目录即可。 27、问:我想取消EditView的右键功能,而自己用Command1(在vb中)来实现,该怎么样做?(比如实现放大、缩小、平移、更新、复位等) 答: EditView空间提供zoomin()放大,zoomout()缩小等对窗口操作的方法。具体可参考对象浏览器中对各方法的注释。 28、问:我在求距离和面积的时候想先画出线然后得到距离或面积,就跟在MAGPGIS图库管理子系统中距离测量和面积测量功能一样,又该怎么样来实现? 答:画线可以采用异或线的方法,鼠标点击的每个点都转换成逻辑坐标,放入D_DotSet,再用CalculateLength,CalculateOneArea求长度和面积。 29、问:急!!关于_InputFileName()函数 我的代码是这样的: char * strOutPath; char * fileter; strOutPath=NULL; fileter="wt"; _InputFileName(strOutPath,NULL,NULL,"PNT",'1',fileter,NULL); 我调试的时候,一到最后一行就报错。 错误信息如下: Unhandled exception in ChangePoint.exe(BAS60.DLL):0xC0000005:Access Violation 请指教,谢谢! 答: char szName[128]; char dsn[32]; char owner[32]; char ftype; char openflag=0; //0 打开文件;1 保存文件 char filter[]=_T("线文件(*.wl)\0*.wl\0点文件(*.wt)\0*.wt\0\0"); char ttlStr[]=_T("打开文件"); char log[32]; char psw[32]; memset(szName,0,sizeof(szName)); memset(dsn,0,sizeof(dsn)); memset(log,0,sizeof(log)); memset(psw,0,sizeof(psw)); memset(owner,0,sizeof(owner)); _InputFileName(szName, dsn, owner, &ftype, openflag,filter,ttlStr); if(dsn[0]!='\0') { db_GetLogPsw(dsn, log, psw); //m_hInst 工作区示例句柄 m_ai 工作区号 m_ai=_OpenFileArea(m_hInst,szName,dsn,log,psw); } else m_ai=_OpenFileArea(m_hInst,szName); szName dsn owner ftype 都是出口参数。 strOutPath你给的是NULL当然是错误的。 有可能是网络数据,dsn owner 也为NULL,是相当危险的。 30、问:用delphi怎么新建一个工程?并且能不让新建的工程弹出那两个对话框吗? 答:直接CreateComObject()as IMap,然后把这个Imap接口赋给editview即可。 31、问:关于maplayer, 在delphi中maptree不能正确使用,请问我如何能知道工程里所有文件的 名称和状态? 答:对map的layer进行遍历,每个layer的workarea的name属性就是工程里该文件的名称。该layer的visible表示是否可见的状态。用map的activelayer取、设激活的layer。 32、问:这样求两点距离和图型面积?(vb) 用鼠标虚义一根线,求出线两端的距离?用鼠标画一个任意闭合区,求闭合区的面积? 答: 不管你输入的是线,还是闭合区域,在Mapgis里都是用“点集”D_DotSet表示的。 将你鼠标输入的点转换成逻辑坐标存入D_DotSet。 调用 CalculateLength(xy As D_DotSet) As Double 求线长度 调用 CalculateOneArea(xy As D_DotSet) As Double 求该点集围成的区的面积 33、问:请问用delphi开发,如何将某一maplayer和工作区绑定? 我打开了一个工程文件,现在想对其中某一层进行操作,如何把这一层和工作区进行绑定?那个attach怎么用?我的意思是已经用map.load把文件打开了,然后怎么绑定?我用的是 var regarea:iregarea; regarea:=createcomobject(class_regarea) as iregarea; maplayer.attach(regarea); 把regarea保存一下,发现还是空白一片 答:对工程中的某一层进行操作,只需要对该layer的workarea接口操作即可。 而你的代码是把该layer又和一个新的regarea(你只是实例化了,没有装载文件)绑定,此时已经丢掉了原来的workarea。所以出现你描述的情况。 34、问:那个函數能够实现计算一条曲线与其它多条曲线的交点? 答: 在winarea.h文件中有计算单个线段交点的函数 short WINAPI _CalCrossDot(D_DOT *la0,D_DOT *la1,D_DOT *lb0,D_DOT *lb1,D_DOT *xy); 你可以先用当前线的rect通过RectAskLin找到相交的线,再逐个求交点。 35、问:我使用actxedit------gisedit控件进行的二次开发。 可是打包后安装,这个控件总也不能被注册。 具体怎么解决? 答: 建议你将该控件所用到的dll也一起打包(用DEPENDS察看) 在你的打包程序中用regsvr32来注册。 36、问: 我用ModEnvFile但是报错说不支持对象的属性或方法 请问为什么? 我用GetEnv得到了路径的文本,怎么修改呀? str=Mapgis.GetEnv.cur 之后怎么办呢? 答:Mapgis.GetEnv.cur="新的路径" 37、问:如何在VB中实现对目录环境修改的功能 答:你指的是mapgis的环境目录吗? 如果是,你可以用mapgis对象下面的getenv、writeenvfile、setenv方法来取得、修改、设置mapgis的环境目录。 38、问:老话重提:如何获得工程的地图参数 答: MAPGIS工程中也同样记载了一个“地图参数”的内容! 如果是按照标准方式建立的工程数据,那么工程中的地图参数和包含文件中的地图参数应该是一样的!所以建议直接取工程文件 本身记载的地图参数,那么就不用考虑是否存在文件的区别了!具体函数是: 在project.h中调用Prj_Head.PrjMapParam即可! 39、问:如何在map对象中实现只对激活的maplayer进行编辑和操作? 答:selectpoint方法可以选中所有的打开的点文件中的点。而不仅仅是你激活的那个layer。在最新的mapgis中对maplayer增加 了一个selected的标志。如果该标志设为1,则selectpoint会在这个layer上做操作。相反,则不会影响这个layer。 40、问:在mapgis输入编辑里有个功能叫“根据属性赋参数”,请问二次开发里提供这个功能吗?如果有怎么用,在哪里可以找到;如果没有怎么根据属性筛选符合条件的点。答:、“根据属性赋参数”实际上就是找出那些满足你给定的属性条件的图元,然后给他们参数的某一项,或者某几项。用AttAsktoList即可,具体可参考vb开发示例。(MPGIS.COM.CN下载区) 41、问: 用Gisedit1.SelectGraphics选中图元后,如何取得其属性值,请用VB示范一下,谢谢! 答:可以自己写一个交互操作,用鼠标双击、或者拉框来查询图元。 对于鼠标双击可以直接调用nearlin...,对于拉框可用rectasktolist来查询。前者得到图元实体好,后者得到实体号列表。然后用这些实体号即可取属性即可得到相应的属性。 42、问:有关IMS 的浏览查询的问题 我想在IMS中实现浏览查询功能,能不能按照如下的思路做: 1 选定某一个工作区; 2 找出该工作区的所有图元 3 显示该图元的信息 问题是: 怎么样找出一个工作区的所有图员 dim PrjItem set PrjItem = Server.CreateObject("MpMapCom.MpPRJITEM.1") Session("MapViewObject").ViewPrj.GetItem i,PrjItem 这样能得到i对应的工作区,下面该怎么得到此工作区的所有图元呢? 谢谢 答: 要得到图元,是用户进行查询的,而查询有多种查询方法,可以模糊、点击等等,如果用添加查询,就用函数gisSearchByStr,点击就用gisSearchByHitting等等,lib库中有这样的函数,web开发实例中也有这样的例子,您可以看看那里的例子,希望对您有所帮助 43、问:请问大侠,bE00out函数,能不能自定义导出的e00文件的路径? 答:直接在文件名前面加路径即可。 如: Dim hInst As Integer Dim ai As Integer hInst = bInitWorkArea(&H0) ai = bOpenArea(hInst, LIN) Call bLoadFile(ai) Call bE00out(ai, "d:\aa.e00") Call bFreeWorkArea(hInst) 44、问:请教在WEBGIS中,能否对*.WP,*.WL,*.WT文件进行操作,属性检索的功能和非WEGGIS开发模式下的有什么区别,我想闪烁某个/些被检索到的图元能做到吗? 答:在webgis中能够对点线面文件进行操作,可以根据用途的不同,可以进行不同的操作。 属性检索和非webgis开发模式下没有什么不同。在webgis中可以进行闪烁某个点或一些点,但是我们一般不建议这样作,因为这样速度可以跟不上,一般是通过改变颜色的方式来标志检索到的图元。 45、问:怎么写点的属性,我想用pntatt.write 答: 先得到你要写属性的那条记录。pntarea.get(i,rcd)然后对rcd属性记录进行操作,rcd.item.val(1)......再pntarea.write即可。 46、问:如何在vb中使用“GisConv.h”中所声明的api函数?比如convertapi_e 答: Declare Function bGisAscIn Lib "w60_conv" Alias "#6" (ByVal AHInst As Integer, ByVal mPath As String, outAi As Integer) As Integer '明码文件转换二进制文件,返回成功和失败 Declare Function bGisAscOut Lib "w60_conv" Alias "#7" (ByVal ai As Integer, ByVal FileName As String) As Integer '二进制文件转换明码文件,返回成功和失败 Declare Function bE00In Lib "w60_conv" Alias "#8" (ByVal AHInst As Integer, ByVal mPath As String, ByRef OutAp As Integer, ByRef OutAl As Integer, ByRef OutAr As Integer, ByRef OutLab As Integer, Optional ByRef OutNai As Integer = 0, Optional ByVal OrderColorFlag As Integer = 0, Optional ByVal PntColorFld As Long = 0, Optional ByVal LinColorFld As Long = 0, Optional ByVal RegColorFld As Long = 0) As Integer Declare Function bE00out Lib "w60_conv" Alias "#9" (ByVal ai As Integer, ByVal FileName As String) As Integer Declare Function bDxfOut Lib "w60_conv" Alias "#10" (ByVal ap As Integer, ByVal al As Integer, ByVal FileName As String) As Integer Declare Function bArcInfIn Lib "w60_conv" Alias "#11" (ByVal AHInst As Integer, ByVal mPath As String, ByRef OutAp As Integer, ByRef OutAl As Integer, ByRef OutAr As Integer) As Integer Declare Function bArcInfOut Lib "w60_conv" Alias "#12" (ByVal ai As Integer, ByVal FileName As String) As Integer Declare Function bArcIn Lib "w60_conv" Alias "#13" (ByVal AHInst As Integer, ByVal mPath As String, ByRef OutAp As Integer, ByRef OutAl As Integer) As Integer Declare Function bArcOut Lib "w60_conv" Alias "#14" (ByVal ai As Integer, ByVal FileName As String) As Integer '示例: 'Dim ahInst As Integer 'Dim binAi As Integer 'Dim ai As Integer 'Dim mpath As String 'Dim fname As String 'Dim res ' 'ahInst = bInitWorkArea(0) 'mpath = "d:\mapgis61\sample\china.wal" 'res = bGisAscIn(ahInst, mpath, binAi) 'MsgBox res 'fname = "d:\mapgis61\sample\china.wal" 'ai = bOpenLinArea(ahInst) 'bLoadFile ai 'res = bGisAscOut(ai, fname) 'MsgBox res 'bFreeWorkArea ahInst 47、问: 对于区有一个生成label文件的操作,它是生成的一个新的点文件并提示保存,现在我就是想把生成的点文件保存在现在点文件的一层里,有什么办法吗? 答: 修改生成的点文件中的每个点的图形参数,将图层改为一致,再拷贝打一个点工作区中即可。 48、问:求一个点到一个区的最近和最远距离要怎么做 答: double _MinDistofPntToReg(D_DOT *pnt,short ai,long,ri) double _MaxDistofPntToReg(D_DOT *pnt,short ai,long ri) *pnt 点坐标地址 ai 区所在工作区 ri区号 若点位于区内,则最小距离为0 ================2003年12月10新增============== 49、问:请教关于定位的问题。 在一个工作区里面,我使用SelectRegion方法获得一个selectset,想把它放大显示在屏幕中央,该如何操作,使用那一个对象或是方法??最好给几句代码(vb)。3Q 答: 首先,取出集合中实体图形信息(Info)使用EditView.SetMapRange(MapRect As D_Rect)方法更改图形信息中的区域范围(D_Rect)。 50、问:动画功能如何实现? 如何在有向的道路中心线上实现车行的模拟? 即在道路上定两个点,以一定的速度,模拟汽车(符合)在两个点间的动态的行走,能否给个简单的demo。 答: 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(i=1;i { if(rdat!=0) { _GetLin(...abs(rdat),dotset,linlen...) tempLength=_CalculateLength(dotset,linlen); if(tempLength>maxLeghth)- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MAPGIS 二次开发 常见问题 汇总
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文