2024年1月1日发(作者:)
二次开发常见问题
1、启动IMS服务后日志里面空间分析服务报错或空间分析无法使用
原因一:IMS服务管理器中数据库配置问题
空间分析要用到两个临时数据库,一个是SpatialAnalyIMS,要存储到商用数据库中;一个是,存储到平台下的。
(1)确定数据库SpatialAnalyIMS已经附加到SQL数据库中;附加到平台下;
(2)如果是SQL2005的数据库,在IMS服务管理器中数据库配置中不要设置IP,设置数据库所在机器的计算机名称(这个是SQL2005数据库的问题)。
原因二:IMS服务管理器中矢量数据服务配置中没有勾选“启动空间分析服务”,勾选后要单击“保存”按钮,重启服务。
2、配置网络数据源SQL、ORACLE失败
原因:学习版不支持网络数据源
解释:要理解MapGIS的数据存储,分为两种,一种是本地数据源,一种是网络数据源。本地数据源是以本地HDF文件方式存储 网络数据源指的就是将空间数据存储在商用数据库里面。一般用本地数据源就行了。
3、发布示例站点后,打开站点提示“无法远程连接服务器”
原因一:矢量示例数据没有附加到平台中。没有附加请附加数据。
原因二:IMS的GIS服务未启动,或不能正常启动。要检查IMS服务发布数据后是否单击“保存”按钮,保存配置并启动服务。
4、发布示例站点后,打开站点出现白图
原因:如果使用的是IE8,是浏览器兼容问题,更改IE8为兼容模式或者使用火狐等非IE内核的浏览器。
5、发布示例站点后,打开站点提示open地图失败
解决方法:重新注册下MapGIS K9Program下的、
6、使用平台一段时间后,打开平台发现无法使用,任何MapGIS的exe都无法打开
原因:可能是Beta版包学习版注册问题
1、打开注册表,将HKEY_CURRENT_USERSoftwareMapGisLCCSYSTEM下的NO_PROMPT键值改为“0”;
2、打开平台,会弹出一个注册的对话框,里面有注册码,(注意此时不要关闭该对话框);
3、根据该注册码到http: 的学习版注册模块注册,得要一个证书码;
4、在之前弹出的对话框中入延长证书码后,再修改NO_PROMPT的键值为“1”,继续使用学习版证书。
7、Flex开发中——出现拖动控件后出错无法编译的情况
原因:可能是开源二次开发库附加错了,也就是把SDK下的文件拷贝到Flex工程的src下(注意是SDK目录下所有的文件,不要把SDK目录拷贝过去)。
1、发生错误:创建对象失败。
解决方法:开始--所有程序--MapGIS7.3二次开发大赛版软件--工具箱--注册组件。
2、在VS中添加MapGIS控件,调试运行时弹出对话框“托管调试助手LoaderLock ...
导致应用程序挂起。”
解决方法:(1)点击停止调试,然后点击“开始执行(不调试)”。
(2)在"Debug"菜单下----"Exceptions"----"Managed Debugging
Assistants"中勾掉"LoaderLock"。
3、添加MapGIS控件后,VS中无法显示界面,错误提示“加载设计器时遇到一个或多个错误。这些错误在下面列出。一些错误可通过重新生成项目来修复,而另一些错误则需要更改代码”。
解决方法:取消所有添加进VS的控件,然后重新加载:工具箱——选择项——com组件。并在VS的解决方案资源管理器——你的项目名称——引用下,添加所用到的MapGIS控件dll。若添加该组件后仍显示黄色感叹号,则该组件未注册,需在开始——运行中输入:regsvr32 “未注册的组件路径.dll”,注册成功后关闭VS项目,重新打开运行。
4、在VS2005中调试程序查看变量值时显示的不是十进制数值,怎么设置?
解决方法:类似这种情况,右击,把16进制显示去掉就可以了。
5、在vs2005环境的web编程中,我从HTML的源码视图返回的设计视图之下,为什么不显示控件,该怎么解觉?
解决方法:在“我的电脑”中搜索 "",发现Dreamweaver,office,qq,flash 8.0,adobe photshop cs2这些软件都调用了,挑一个最
新版本的(就是把鼠标放在搜索结果的项上,会显示版本号、创建日期,选一个版本号、创建日期最新的),copy到C:meworkv2.0.50727和C:Program
FilesMicrosoft Visual Studio 8Common7Packages两个目录下,好了之后,操作如下:
“开始”-“程序”-“Microsoft Visual Studio 2005”-“Visual Studio Tools”-“Visual
Studio 2005 命令提示”,输入devenv /ResetSkipPkgs,)。
6、VS中显示,类似于——无法加载引用“AxGISSYMBOLVIEWLib”的类型库。库没有注册。
解决方法:首先点开始——所有程序——MapGIS 7.3 二次开发大赛版——工具箱——注册组件,重新运行VS,若项目资源管理器中,引用下的类库仍然显示黄色感叹号,则打开安装目录如:“D:MapGIS7.3Program”,找到“”(在Program文件夹中对应时去掉Ax,dll名类似与库名),并在开始——运行,中输入:regsvr32然后将该dll拖入运行对话框,此时自动显示regsvr32 “D:MapGIS7.3Program ”,确定后再检查引用下的类库,黄色叹号不存在则正常。
7、使用什么控件进行图属联动?RecordGird怎么不可以?
解决方法:加载GisGridCtrl而不是RecordGird,使用GisGridCtrl的selchanged事件即可,操作方法为:
联动分两步:
第一步:根据鼠标在视图上点击查询得到oid,然后在gisgridctrl中调用SetXClsRcd,gisgridctrl会自动跳转到相应的记录上。
void axMapXView1_OnLButtonDown(object sender,
AxMapXView._IXViewEvents_OnLButtonDownEvent e)
{
coordinate(e.x, e.y);//坐标转换,参照问题8,将窗口坐标转换为地图坐标
mc_ m_Rect = new mc_();//创建矩形区域进行选择,也可创建多边形区域
mc_ctSet m_SelectSet = null;//创建选择集,用于保存选择到的所有元素
mc_ureCls m_Fcls = null;//创建要素类
m_Fcls =
(mc_ureCls);
m_ = ;//这里仅作为示例,你可以使用框选的办法或者点击时以鼠标按下的点建立一个小矩形进行单一要素选择
m_ =;
m_= ;
m_=;
m_lect(m_Rect, out m_SelectSet, null, 0, 0, 0, 0);//要素类选择得到选择集
m_rst();//移动到选择集第一个元素
for (int i = 0; i < m_Count() - 1; i++)
{
sRcd(m_Fcls, m_ID());//取到oid
FlashItem(m_Fcls, m_ID(),
FID);
lash();//闪烁
m_xt();
}
}
第二步:在gisgridctrl中响应SelChanged事件,返回ptOID,然后在视图上AppendFlashItem添加闪烁图元,然后StartFlash。
void axGisGrid1_SelChanged(object sender,
AxMC_GISGRIDCTRLLib._IGisGridEvents_SelChangedEvent e)
{//功能为点击GisGrid,在地图上闪烁图元
mc_ureCls m_Fcls = null;//定义要素类,闪烁时则应加载要素类图层
m_Fcls =
(mc_ureCls);//取当前激活图层的要素类
FlashItem(m_Fcls, (mc_ctID),
FID);//加载闪烁项
lash();//开始闪烁
}
8、如何进行坐标转换?
重要概念:
窗口坐标(Wp):以当前客户区左上角为坐标原点,横向向右为X轴正方向,纵向朝下为Y轴正方向
设备坐标(Dp):以当前客户区左下角为坐标原点,横向向右为X轴正方向,纵向朝上为Y轴正方向
逻辑坐标(Lp):当前地理数据所采用的用户坐标,如北京54,西安80等坐标系
地图坐标(Mp):当前地图数据所使用的坐标系!
MapXView的坐标为:画布范围的坐标,左上为角为(0,0)
例子:获取当前显示地图过程中,鼠标移动时的地图坐标
void axMapXView1_OnMouseMove(object sender,
AxMapXView._IXViewEvents_OnMouseMoveEvent e)
{//为axMapXView1添加鼠标移动事件
int x1 = 0, y1 = 0;
double x2 = 0.0, y2 = 0.0;
double x3 = 0.0, y3 = 0.0;
x1 = e.x;
y1 = e.y;
sformation cood;//坐标转换
lay dsp;
aint(out dsp);//启动绘制,类似于VC绘图时的GDI
cood = ormation;
(x1, y1, ref x2, ref y2);// 窗口坐标坐标转换逻辑坐标
(x2, y2, ref x3, ref y3); //逻辑坐标坐标转换地图坐标
= "坐标: " + ng() + "," + ng();
}
9、二次开发常用控件及简要说明:
地图视图控件(MapXView):负责所有的基本显示功能,由MapXView取到IXDisplay接口,IXDisplay接口进行坐标变换,显示要素类等操作等
工作空间控件(MxWorkSpace):主要用于对数据以及资源进行管理,包括对包括打开、关闭、新建、保存工作空间文件(*.wks)、连接数据源、字体文件的载入,卸载、图形信息库文件的载入,卸载、三维场景的加载等
编辑控件(MxEditorConnector):提供了对地图的基本的编辑功能的工具,如要素工具、空间分析工具、网络工具等,这些功能均已经完整封装提供,只需一句话调用即可实现。所提供的功能函数名称可以在注册表下的以下键值中查询HKEY_CURRENT_USERSoftwareMapGisFrameWork70
grouptool,注册表“项”名称即为upTool(”参数1”,”参数2”);参数2的名称,具体示例参见MapGIS安装路径SDKDEMOC#中的示例
编辑助手控件(MxEditAssistCtrl):提供了对选择集的各种操作,如选择集通过属性选择来获取、图元之间地跳转、选择集中数据的操作等
地图文档树控件(MxDocTreeView):加载地图及图层
拓扑错误列表控件(mxTopoErrorListCtrl):显示拓扑错误的控件,该控件可以把传入的拓扑错误以列表的方式显示出来
属性视图控件(GisGrid):主要是对要素类,简单要素类的属性以及对象类进行显示,可以和MapXView联动,编辑属性
大赛组委会
2009-7-29


发布评论