SuperMap技巧小贴士

1.技巧贴:快捷方式真方便
SuperMap Deskpro提供了很多快捷方式,掌握其中的快捷操作,鼠标和键盘相结合会大大提高效率,比如,当你在窗口画线时,出了窗口范围,想移动,这时使用键盘上的“上”“下”“左”“右”键,要比“漫游”方便些。

2.技巧贴:使用XML技术合并工作空间
SuperMap GIS提供了XML格式的工作空间管理方式,使用该技术可以方便的合并多个工作空间,使用方法是:先将A、B两个工作空间保存为SXW格式,再用记事本打开,将A中有关地图的信息拷贝到B中相应的地图节点下,保存即可。

3.常见问题贴:问题1
进行SuperMap IS .NET项目部署时一般会需要修改地图服务的IP地址,与部署的服务器相对应,怎样修改呢?
解决办法:
在工程的web.config文件中增加以下三个key
<add key="MapServer_Address" value ="192.168.119.112"/>
<add key="MapServer_Port" value = "8800"/>
<add key="MapServer_Enforced" value = "true"/>
参数说明:
第一个参数:服务器地址;
第二个参数:端口;
第三个参数:当key值与页面中的MapControl设置不同时,该参数为true表示取key的设置,该参数为false表示取MapControl的设置。

4.常见问题贴:问题2
将SDB转换为PMR,在PDA上打开该数据没有显示出地图。
原因分析:
PMR格式中保存的是空间数据,地图配置(包括图层叠加、图层风格、专题图等)是保存在工作空间PMW文件中。
解决办法:
使用eSuperMap Viewer打开PMR,将需要叠加显示的数据集在一个地图窗口中打开,并为图层设置风格,然后保存地图和工作空间。将PMR和PMW文件下载到PDA设备上,打开工作空间和地图,数据就可以按照预先设定的样式和叠加顺序显示了。

5.问题:有时候在标签专题图中需要标注不同的字段,并使不同的标注以特殊的颜色显示,该怎么办呢?
解决方法:
1、将要标注的图层复制两份叠加显示,然后分别对两个图层用不同的字段制作标签专题图,并使最上面的图层透明显示。不过当被标注的图层的数据量较大时要慎用。
2、将字段保存成文本图层,与原始图层叠加显示。

6.问题:对于刚刚接触eSuperMap尤其是在VS2005下进行开发的用户来说,可能会觉得一开始的配置问题比较繁琐,特别是在编译时出现一些配置相关的错误以及连接模拟器或是嵌入式设备的时候经常遇到程序无法执行的提示。
安装步骤:
1、建立工程时包含开发包头文件和库文件;
2、正确设置设备类型以及是模拟器还是设备,并与步骤1中库文件的设置保持严格的一致;
3、运行前一定上传与前面设置对应DLL文件,包括设备类型、模拟器还是设备以及DEBUG版本还是RELEASE版本等;在VS2005下模拟器环境中调试一般是以共享目录的形式保存文件的,一定要将程序相关联的动态库文件添加齐全。

7.在SuperMap Objects中实现自定义添加空间对象的时候
如果数据集的数据量很大,要使用Query方法得到记录集然后调用AddNew方法添加对象,可以设置第一个参数查询条件为“smid<0”,这样既可以得到记录集,又可以提高查询的速度,可谓两全其美。

8.问题:关于SuperMap GIS软件的升级(5.0→5.2),需要升级驱动
解决方法:
您可以从公司的下载中心下载5.2.0的安装包,安装完成以后,在5.2.0的安装目录下有一个support目录,从里面找到新的驱动程序Sentinel Protection Installer.exe,安装一下即可。

9.问题:关于SuperMap Deskpro中的投影转换
解决方法:
由于投影转换的计算精度问题,它的计算结果是不完全可逆的。强烈建议您在进行转换前对数据进行备份。

10.问题:我们在做地图的时候经常会碰到这样的问题,那就是,将做好的虚线线型进行风格设置,当线宽度设置为5以上的时候,整条线就会变得很粗,根本看不出虚线的风格效果。
解决方法:
解决的办法是在线型编辑器中对该线型进行固定宽度的限制(例如固定宽度值给5),就可以做出符合要求的线型了。

 
11.问题:在Windows 2003系统中使用SuperMap IS .Net经常会有不出图的问题
解决方法:
解决办法是这样的,在安装软件过程中已经新建了output虚拟目录,但是在Windows 2003默认情况下这个虚拟目录是没有读取权限的,可以在Internet信息服务中找到output这个虚拟目录,将读取的复选框钩上就可以了。

12.问题:如何在图层列表 LayerControl 中去掉不想列出的图层?
解决方法:
1 、新建一个类,在 *.cs 文件中继承 SuperMap.IS.WebControls.Utility.LayerFilter ,同时重写 Filter 方法;
2 、在 MapControl_MapFirstInit 事件定义此对象,并给 LayerControl.DisplayFilter 赋值。
类的代码如下 :
public TestFilter ()
{
}
public override bool Filter(Layer layer)
{
if(layer.Name == Tower@temp)
{
return false;
}
return true;
}
在页面中使用的代码如下:
在 MapControl_MapFirstInit 事件中添加 :
LayerFilter tf = new TestFilter();
this.LayerControl1.DisplayFilter = tf;
LayerControl1.Update();

SuperMap技巧小贴士–CAIGISBLOG

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据