112;LEFT:
24px;
POSITION:
absolute;TOP:
<%#iTop%>px">。
不使用安装包也可以自己动手安装SuperMapIS.NET
安装步骤:
(1)将已经在另外一台机器上面部署的IS.NET所有文件夹复制过来;
(2)创建指向SuperMap\SuperMapIS.NET5\Bin\SuperMap.IS.AppServer.exe的快捷方式;
(3)修改这个快捷方式的目标为
"D:
\SuperMap\SuperMapIS.NET5\Bin\SuperMap.IS.AppServer.exe"-app;
(4)创建指向\SuperMap\SuperMapIS.NET5\output的虚拟路径,名称为output;
(5)创建指向\SuperMap\SuperMapIS.NET5\Demo\AspxDemo的虚拟目录,名称为AspxDemo;
(6)创建指向\SuperMap\SuperMapIS.NET5\Manager的虚拟目录,名称为\SuperMap\SuperMapIS.NET5\Manager的虚拟目录,名称为ISManager。
SuperMap开发小贴士第四期
时间:
2009-03-0522:
24:
48 来源:
超图通讯 作者:
未知 点击量:
38
※问题:
有时候在标签专题图中需要标注不同的字段,并使不同的标注以特殊的颜色显示,该怎么办呢?
解决方法:
1、将要标注的图层复制两份叠加显示,然后分别对两个图层用不同的字段制作标签专题图,并使最上面的图层透明显示。
不过当被标注的图层的数据量较大时要慎用。
2、将字段保存成文本图层,与原始图层叠加显示。
※问题:
对于刚刚接触eSuperMap尤其是在VS2005下进行开发的用户来说,可能会觉得一开始的配置问题比较繁琐,特别是在编译时出现一些配置相关的错误以及连接模拟器或是嵌入式设备的时候经常遇到程序无法执行的提示。
安装步骤:
1、建立工程时包含开发包头文件和库文件;
2、正确设置设备类型以及是模拟器还是设备,并与步骤1中库文件的设置保持严格的一致;
3、运行前一定上传与前面设置对应DLL文件,包括设备类型、模拟器还是设备以及DEBUG版本还是RELEASE版本等;在VS2005下模拟器环境中调试一般是以共享目录的形式保存文件的,一定要将程序相关联的动态库文件添加齐全。
※在SuperMapObjects中实现自定义添加空间对象的时候,如果数据集的数据量很大,要使用Query方法得到记录集然后调用AddNew方法添加对象,可以设置第一个参数查询条件为“smid<0”,这样既可以得到记录集,又可以提高查询的速度,可谓两全其美。
※问题:
关于SuperMapGIS软件的升级(5.0→5.2),需要升级驱动
解决方法:
您可以从公司的下载中心下载5.2.0的安装包,安装完成以后,在5.2.0的安装目录下有一个support目录,从里面找到新的驱动程序SentinelProtectionInstaller.exe,安装一下即可。
※问题:
关于SuperMapDeskpro中的投影转换
解决方法:
由于投影转换的计算精度问题,它的计算结果是不完全可逆的。
强烈建议您在进行转换前对数据进行备份。
※问题:
我们在做地图的时候经常会碰到这样的问题,那就是,将做好的虚线线型进行风格设置,当线宽度设置为5以上的时候,整条线就会变得很粗,根本看不出虚线的风格效果。
解决方法:
解决的办法是在线型编辑器中对该线型进行固定宽度的限制(例如固定宽度值给5),就可以做出符合要求的线型了。
※问题:
在Windows2003系统中使用SuperMapIS.Net经常会有不出图的问题
解决方法:
解决办法是这样的,在安装软件过程中已经新建了output虚拟目录,但是在Windows2003默认情况下这个虚拟目录是没有读取权限的,可以在Internet信息服务中找到output这个虚拟目录,将读取的复选框钩上就可以了。
SuperMap开发小贴士第五期
时间:
2009-03-0522:
27:
00 来源:
超图通讯 作者:
未知 点击量:
83
※问题:
关于工具下的“标准图幅图框”问题。
SuperMapDeskpro5.2中标准图幅图框生成1:
10000和1:
5000的标准图幅位置都是正确的,而生成1:
50000的标准图幅时,图幅的位置不对,比如一幅1:
50000的I50E011009的标准图,生成后Y是20409,正解应该是39409吧?
解决方法:
图幅号是I50的,中央经线应该是117度,如果是6度分带带号是20,3度分带带号是39。
1:
5万的标准图幅我国国家规定通常是用6度分带,所以20409开头是对的。
※问题:
以前有朋友遇到这样的问题,在VC中创建SuperMap实例,开发环境中使用正常,运行环境下却报“找不到许可”的错误,出现这个问题的原因是在创建实例的时候没有传入lic相关的参数,正确的创建代码如下:
安装步骤:
BSTRbStr=L"SuperMap";
m_SuperMap.Create("SuperMap",WS_CHILD|WS_VISIBLE,CRect(0,0,10,10),this,1,NULL,false,bStr);
※问题:
使用SuperMapObjects提供的方法SuperWorkspace.Open打开一个工作空间,很多朋友通过该方法返回的Boolean型参数来判断数据是否打开成功,其实这个是不够的,该返回结果仅能判断工作空间是否被正常打开,而其自动关联的数据源是否打开了需要对数据源进一步判断,可以通过三个方法辅助判断数据源是否成功被关联打开。
安装步骤:
(1)通过SuperWorkspace.DataSources.Count判断工作空间中有几个数据源,如果是0个,表明没有关联进来;
(2)通过SuperWorkspace.DataSources.Item来获得其中的数据源,看看返回的结果是否为空;
(3)如果关联的是数据库引擎的数据源,那即使数据源没有被关联打开,通过SuperWorkspace.DataSources.Item获得的数据源也不会为空,这时候要辅助以soDataSource.Datasets.Count来判断该数据源下是否有数据集。
※问题:
将带投影的纸图扫描后,导入SuperMapDeskpro进行矢量化,实现起来比较方便,只要按照原来的纸图进行投影设置,配准为正确的坐标后就可以进行矢量化。
但是对于多幅带投影信息的纸图也这样操作的话,就容易发生无法正确拼接的问题。
解决方法:
建议先用PS拼接扫描图,设置正确的数据源投影,然后再导入SuperMapDeskpro中进行配准和矢量化。
※问题:
eSuperMap导航原理
路径导航是eSuper-Map功能的重要应用之一。
其基本实现是先构造好一条导航路径,通过比较当前GPS点与前方路径点的位置关系从而获取有效的路径导航信息。
开发步骤如下:
安装步骤:
1、通过对网络数据集进行路径分析获取路径节点或者是自采集路径点串并顺序记录存储进所定义的数组中;
2、初始化导航类对象,利用步骤1中采集的点串构造导航路径,并设置导航容限;
3、OnTimer()事件响应函数中不断地获取当前GPS点的位置,利用导航接口获取当前GPS点的导航结果;
4、如果导航正常,则获取当前针对当前GPS点的导航信息。
※问题:
有这样一种需求,对空间数据制作专题图或者查询的时候,使用的属性数据是外部数据,并非与空间数据一体化存储。
要解决这样的问题,在SuperMap中有两种办法:
解决方法:
1、将外部数据导入到该空间数据所在的数据源中作为一个纯属性数据集保存,然后通过SuperMap提供的属性关联功能设置相应的关联关系;
2、如果空间数据保存在SDX+引擎的数据源中还有另外一种办法,即对空间数据表和外部属性表创建视图,然后修改SMRegister管理表中该空间数据表的记录,将SMTableName由表名修改为视图名,这样就把该视图当作SuperMap的一个数据集来使用,该数据集中包括了视图中的全部字段。
(注意:
这样的数据集是不能添加和修改记录的,受限于数据库中的视图不能修改)
※问题:
在网页编程的过程中,调试JavaScript代码是一件很头疼的事情,往往要通过Alart("Here");来测试代码运行到哪儿了,非常不方便。
现在在VS.NET2005中可以像调试C#程序那样单步调试JavaScript代码了,只要在“IE->工具->Internet选项->高级”中将“禁用脚本调试”复选框去掉,其他的调试方法都是一样的。
(注意:
上面方法目前只能在.js脚本文件中使用,页面中的JavaScript代码还是不可以的)
解决方法:
现在在VS.NET2005中可以像调试C#程序那样单步调试JavaScript代码了,只要在“IE->工具->Internet选项->高级”中将“禁用脚本调试”复选框去掉,其他的调试方法都是一样的。
(注意:
上面方法目前只能在.js脚本文件中使用,页面中的JavaScript代码还是不可以的)
SuperMap开发小贴士第六期
时间:
2009-03-0522:
28:
06 来源:
超图通讯 作者:
未知 点击量:
14
【提问】用SuperMapIS的WebService方式开发,用到地图编辑EditService时,出现编辑操作无故失败是什么原因?
【回答】这是因为EditService的命名空间是,而MapServerce的命名空间是,在使用如MapCoord等参数时,如果直接对不同命名空间的实例赋值,就会导致参数信息丢失。
因此要对这些参数进行转换,才能正确获取到参数信息。
巧用SuperMapDeskpro的Debug信息
在SuperMapDeskpro安装目录Bin文件夹下有一个supermap.ini配置文件。
把此文件中ShowDebug属性设置为1,地图浏览的时候,可以显示地图各个图层的查询时间以及显示时间。
便于辅助找到影响地图显示速度慢的图层,以分析解决方法。
在eSuperMapViewer里面配置好地图后,除了可以将地图配置信息保存在工作空间中,也可以将其存为XML文件,这样便于查看和手工编辑地图配置,也可在重新编辑数据源后导入原来的地图配置。
具体操作为在eSuperMapViewer中保存好地图后,鼠标选中当前地图右键弹出下拉菜单,选择保存地图为XML文件。
SuperMap开发小贴士第七期
时间:
2009-03-0522:
29:
15 来源:
超图通讯 作者:
未知 点击量:
51
【提问】为什么有时候绘制对象会失败?
【回答】分析原因:
当向一个数据集上绘制几何对象出现画不上的问题,如果通过重新计算范围和重建空间索引不能解决问题,请检查一下该数据集的属性字段是否存在必填字段,而且该字段没有设置缺省值,这个就是问题所在。
解决办法:
新建字段,使用“更新列”将原始字段值复制过来;删除原有字段,重新建立一个同名字段并设置缺省值,再更新复制回该列的值,删除中间字段即可。
作者:
SMLiwh
【提问】将SuperMap的一个线数据集aa导出成e00文件,再将e00文件导入回SuperMap生成新的线数据集bb,原始的aa中只有一条线,而结果的bb数据集中却是两条线,是将原始一条线打断成两条来保存的,为什么?
【回答】e00文件存储线对象,对线对象的顶点数限制在500个以内,因此,如果原始线对象的顶点数超过这个限制,导出的时候就会在第500个顶点处截断,分成两条线来存储。
作者:
flyinmap
【提问】在SuperMapObjects中如何实现反选?
【回答】假设选择了若干对象的SMID分别为2,4,5,7,10实现反选时,设置查询条件"SMiDnotin(2,4,5,7,10)",再对此图层数据集查询出的记录集转换为选择集,实现的效果就是选中了除了这几个ID之外的对象了。
作者:
xiaoniliu
【提问】在SuperMapObjects中如何绘制岛洞多边形?
【回答】以选中的两个面对象为例,先用union方法得到这两个面的并集,再使用Intersect得到它们的交集,用这个交集面去Erase并集面,最后的结果就是岛洞多边形了。
作者:
xiaoniliu
【提问】工作空间中的数据源投影方式修改了,但是地图的坐标显示还是原来的,怎么办?
【回答】由于地图中保存的是配置地图时读取的坐标信息,因此还要修改地图的坐标信息。
方法是在地图属性中修改地图的投影方式。
作者:
zhaoqian
三维贴图技巧
大家在做楼房三维场景时,最头疼的可能就是如何让房屋的纹理贴图看起来更好看、更逼真,而通常找来的一些楼房纹理图片在三维场景中会被拉伸显示很不好看,这是因为图片的大小和三维立方体的大小不成比例造成的。
我们可以这样来解决,在二维窗口中计算出二维面的周长(这个可以在几何对象的属性中的Smperimeter中得到),然后再得到二维面的高程(这个可以从属性表的存储高程的字段中得到),有了面的周长和高度,那么在准备图片时就好办了,尽量选择图片的长宽和面的周长和高度相等的图像,这样贴出的图片就非常好看了。
作者:
superguo
SuperMap开发小贴士第八期
时间:
2009-03-0522:
32:
19 来源:
超图通讯 作者:
未知 点击量:
33
【提问】有些时候,我们需要将不同类型数据集的属性字段合并,SuperMap中这是怎么实现的呢?
【回答】很简单,用数据集追加列,但是前提是两