ImageVerifierCode 换一换
格式:DOC , 页数:8 ,大小:36KB ,
资源ID:1317366      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-1317366.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(mapgis二次开发常见问题及解答.doc)为本站会员(cjc2202537)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

mapgis二次开发常见问题及解答.doc

1、MAPGIS 二次开发常见问题及解答MAPGIS, 解答, 开发1、问:如何用 Delphi 生成 MAPGIS 明码文件?答:先利用手册看懂明码格式文件的格式,知道数据的组织方式,利用 delphi 的文件函数创建一个文本型文件,吧数据库中的数据按照格式输出就是了。2、问:ATT_STRU 和 CATT_STRU 的区别和联系?答: ATT_STRU 是以前老版本的东东,换成 CATT_STRU 试试.CATT_STRU 中包含了属性结构的详细信息,具体用法可参见二次开发帮助文档中第三章数据结构中关于属性字段描述结构,属性字段描述头和属性信息头的介绍, 里面有该结构的详细内容。3、问:请教关

2、于“不能打开子图库.”的问题,急!答:系统库路径不对,将 mapfont.gis、mconfig.gis、netcfg.gis 三个文件拷贝到执行目录即可。这几个语言件放在MAPGISPROGRAM目录中。或是运行 MapEnv.exe 可设置,该运行文件也同样在MAPGISPROGRAM目录中。4、问:如果只知道工作区 ai 能不能依次得到工作区中的图元号,该如何得到啊!答:long i,pntn;short len;pnt_info inf;d_dot xy;char *dat;_GetPntNum(ai,/取点数for(i=1;ipntn;i+)if(_getpnt(ai,i,char

3、* fileter;strOutPath=NULL;fileter=“wt“;_InputFileName(strOutPath,NULL,NULL,“PNT“,1,fileter,NULL);我调试的时候,一到最后一行就报错。错误信息如下:Unhandled exception in ChangePoint.exe(BAS60.DLL):0xC0000005:Access Violation请指教,谢谢!答:char szName128;char dsn32;char owner32;char ftype;char openflag=0; /0 打开文件;1 保存文件char filter=

4、_T(“线文件(*.wl)0*.wl0 点文件(*.wt)0*.wt00“);char ttlStr=_T(“打开文件“);char log32;char psw32;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, if(dsn0!=0) db_GetLogPsw(dsn, log, psw); /m_hI

5、nst 工作区示例句柄 m_ai 工作区号m_ai=_OpenFileArea(m_hInst,szName,dsn,log,psw); elsem_ai=_OpenFileArea(m_hInst,szName);szName dsn owner ftype 都是出口参数。strOutPath 你给的是 NULL 当然是错误的。有可能是网络数据,dsn owner 也为 NULL,是相当危险的。30、问:用 delphi 怎么新建一个工程?并且能不让新建的工程弹出那两个对话框吗?答:直接 CreateComObject()as IMap,然后把这个 Imap 接口赋给 editview 即可

6、。31、问:关于 maplayer,在 delphi 中 maptree 不能正确使用,请问我如何能知道工程里所有文件的名称和状态?答:对 map 的 layer 进行遍历,每个 layer 的 workarea 的 name 属性就是工程里该文件的名称。该layer 的 visible 表示是否可见的状态。用 map 的 activelayer 取、设激活的 layer。32、问:这样求两点距离和图型面积?(vb) 用鼠标虚义一根线,求出线两端的距离?用鼠标画一个任意闭合区,求闭合区的面积?答:不管你输入的是线,还是闭合区域,在 Mapgis 里都是用“点集”D_DotSet 表示的。将你鼠

7、标输入的点转换成逻辑坐标存入 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:=createcomo

8、bject(class_regarea) as iregarea;maplayer.attach(regarea);把 regarea 保存一下,发现还是空白一片答:对工程中的某一层进行操作,只需要对该 layer 的 workarea 接口操作即可。而你的代码是把该 layer 又和一个新的 regarea(你只是实例化了,没有装载文件)绑定,此时已经丢掉了原来的 workarea。所以出现你描述的情况。34、问:那个函數能够实现计算一条曲线与其它多条曲线的交点?答:在 winarea.h 文件中有计算单个线段交点的函数short WINAPI _CalCrossDot(D_DOT *la0

9、,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之后

10、怎么办呢?答:Mapgis.GetEnv.cur=“新的路径“37、问:如何在 VB 中实现对目录环境修改的功能答:你指的是 mapgis 的环境目录吗?如果是,你可以用 mapgis 对象下面的 getenv、writeenvfile、setenv 方法来取得、修改、设置mapgis 的环境目录。38、问:老话重提:如何获得工程的地图参数答: MAPGIS 工程中也同样记载了一个 “地图参数”的内容!如果是按照标准方式建立的工程数据,那么工程中的地图参数和包含文件中的地图参数应该是一样的!所以建议直接取工程文件本身记载的地图参数,那么就不用考虑是否存在文件的区别了!具体函数是:在 proje

11、ct.h 中调用 Prj_Head.PrjMapParam 即可!39、问:如何在 map 对象中实现只对激活的 maplayer 进行编辑和操作?答:selectpoint 方法可以选中所有的打开的点文件中的点。而不仅仅是你激活的那个 layer。在最新的mapgis 中对 maplayer 增加了一个 selected 的标志。如果该标志设为 1,则 selectpoint 会在这个 layer 上做操作。相反,则不会影响这个 layer。40、问:在 mapgis 输入编辑里有个功能叫“根据属性赋参数” ,请问二次开发里提供这个功能吗?如果有怎么用,在哪里可以找到;如果没有怎么根据属性筛

12、选符合条件的点。答:、“根据属性赋参数” 实际上就是找出那些满足你给定的属性条件的图元,然后给他们参数的某一项,或者某几项。用 AttAsktoList即可,具体可参考 vb 开发示例。( MPGIS.COM.CN 下载区)41、问:用 Gisedit1.SelectGraphics 选中图元后,如何取得其属性值,请用 VB 示范一下,谢谢!答:可以自己写一个交互操作,用鼠标双击、或者拉框来查询图元。对于鼠标双击可以直接调用 nearlin.,对于拉框可用 rectasktolist 来查询。前者得到图元实体好,后者得到实体号列表。然后用这些实体号即可取属性即可得到相应的属性。42、问:有关

13、IMS 的浏览查询的问题我想在 IMS 中实现浏览查询功能,能不能按照如下的思路做:1 选定某一个工作区;2 找出该工作区的所有图元3 显示该图元的信息问题是:怎么样找出一个工作区的所有图员dim PrjItemset PrjItem = Server.CreateObject(“MpMapCom.MpPRJITEM.1“)Session(“MapViewObject“).ViewPrj.GetItem i,PrjItem这样能得到 i 对应的工作区,下面该怎么得到此工作区的所有图元呢?谢谢答:要得到图元,是用户进行查询的,而查询有多种查询方法,可以模糊、点击等等,如果用添加查询,就用函数 gisSearchByStr,点击就用 gisSearchByHitting 等等,lib 库中有这样的函数,web 开发实例中也有这样的例子,您可以看看那里的例子,希望对您有所帮助

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报