700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > SuperMap iObject常见问题解答集锦(八)

SuperMap iObject常见问题解答集锦(八)

时间:2022-01-12 16:39:53

相关推荐

SuperMap iObject常见问题解答集锦(八)

作者:皇皇

问:在使用objects .net6R运行程序时,报“未能加载由SuperMap.Mapping.Version=6.0.0…导入的过程”错误,该如何解决?

答:此类错误一般是由于正在使用的6R版本和程序中调用的动态库版本不一致而导致的。可将引用(Reference)的中的动态库删除掉,重新添加正在使用的版本动态库并编译即可。

问:Objects .NET中如何设置图层可编辑?设置了图层可编辑之后图层还是不能编辑这是为什么?

答:设置图层可编辑:Layer.IsEditable即可。可编辑状态下图层不可编辑,图层有可能是处于编辑锁定状态,请在deskpro中解除编辑锁定状态(组件中暂没有提供方法).

问:Objects .NET中如何制作四色专题图?

答:ThemeUnique.MakeDefault方法中提供制作四色专题图的重载,直接传入着色字段名称即可。注意:着色字段需要事先创建好,并且为数值型。

问:SuperMap Objects .NET中能否实现关联外部属性表做专题图或者查询?

答:可以。使用JoinItem可以连接矢量数据集和外部表。实现同一个数据源中的SuperMap中的属性表和数据库中的业务表的关联。

问:Objects .NET中,TextStyle.IsSizeFixed属性有何作用?

答:TextStyle.IsSizeFixed属性为设置文本是否固定大小。IsSizeFixed=true即固定大小,则TextStyle.FontHeight为逻辑单位坐标(mm);IsSizeFixed=false,则FontHeight为地理单位坐标。例如经纬度数据源下,字体高度设置为4,固定大小时为逻辑高度4mm,不固定大小时为地理高度4度。

问:符号预览时的大小和在地图中显示的大小差很多,预览用的是ImageBuffer在Label的Icon属性中显示的,这是怎么回事?

答:ResourcePrivew中预览符号是用ImageBuffer显示在label上的,而地图中是将符号显示在MapControl上的,这两者对于符号大小的定义不同,所以建议符号预览也用MapControl来显示,可以将预览的符号在这个预览MapControl的跟踪层上去显示。

问:Objects .Net中,将文本数据集添加到三维窗口,但是有标杆(文本被举在半空中),不想显示这标杆该如何做?

答:设置GeoStyle3D.BottomAltitude值为文本要拉伸的高度值,设GeoStyle3D.ExtendedHeight为0,文本将以设置的高度出现,但是没有标杆。

问:运行工程时Eclipse报异常:没有找到Wrapj600.dll

答:这个问题一般是由于Eclipse中引用的ObjectsJava包和环境变量中写入的不一致造成的。

问:在MapControl的某个侦听中如果抛出了异常,再继续调用MapControl则程序会奔溃。

答:换用UDB数据格式,可以避免此问题。

问:Deskpro做好的地图,用ObjectsJava打开,里面的所有栅格符号相对Deskpro中变的很小,怎么办?

答:办法是在Deskpro的风格设置中将栅格符号大小设置为0,保存地图,保存工作空间,再用ObjectsJava打开就不会出现上述问题了。

问:用workspace.getMaps().getMapXML()方法导出地图到xml,再用FromXML方法转成地图后,很多设置好的风格都没有了,怎么办?使用的是smw工作空间。

答:smw工作空间是SFC系列产品的数据文件,如果使用Objects Java 6.0的话,建议使用smwu/sxwu型工作空间,就不会存在这个问题。

问:布局中如何绘制地图要素?

答:首先设置当前绘制模式setTrackMode(EDITGEOMAP),然后获取到布局要素集合LayoutElements之后,使用其addNew方法添加。

问:Supermap.xml 配置文件中的相对路径,具体是指什么?

答:Supermap.xml 配置文件中的相对路径,是相对于可执行文件所在目录的相对路径。

问:在 Windows Vista 或 Windows 7 操作系统下配置许可时,有什么要求?

答:在 Windows Vista 或 Windows 7 操作系统下配置许可,需要右键“以管理员身份运行”许可配置应用程序或者把用户控制(UAC)关闭,否则许可配置和检查将不可用。

问:对操作系统的“显示 属性”的“颜色质量”有什么要求?

答:要求是32位或24位颜色。需注意的是,Windows 2000 Server 自带的远程登录方式下,系统是256色的,可以用 PCAnywhere 等软件来进行远程登录,能把颜色质量设置为32位。

问:手动配置许可时应该注意哪些问题?

答:许可配置文件为 SuperMapLic.ini;如果手动配置许可,需要保证里面节点名称的正确性;手动配置时,用户名和单位名要和生成许可时的一致;生成许可时,用户提供的计算机名不能超过15个字符(英文),这是 Windows 操作系统的限制。

问:Bin 目录下的 xml 文件可以删除吗?

答:不可以删除,因为 Bin 目录下的 xml 文件是 UGC 的资源和配置文件,包括 SuperMap.xml、EPSFont.xml、PrjConfig.xml 等文件,这些文件一旦删除,会导致软件无法启动。

问:安装组件产品后,Bin 目录及 JDK 目录是否会自动写进操作系统环境变量的 Path 里面?

答:是,但是如果由于某些不可预测的原因导致目录没能自动写入 Path 中,用户可以通过右击“我的电脑”,选择属性>高级>环境变量,在系统变量里选择Path,双击即可修改 Path 中的路径。

问:SuperMap Objects Java 所需的动态库及依赖库有哪些?

答:Java 组件依赖 VC++ 的一些动态库,安装系统提供的 vcredist90_x86.exe(位于安装目录 Support文件夹内)即可完成所需动态库的安装;Java 组件必须要 JDK1.5 及其以上版本;Java 组件支持1.5及以上版本的OpenGL;Linux平台下的Java 组件三维功能主要依赖的库文件有LibGL.so和 LibGLU.so。

问:我想制作一幅有指北针还有其它元素的地图,之后打印出来,怎么办?

答:在SuperMap Objects Java/.NET 6R产品中,提供了全新的排版打印,可添加指北针等多种布局元素。

问:为什么在三维场景中球面出现大片白色区域?

答:如果三维场景中出现球面伴有大片白色区域,说明与当前机器配置有关,请检查是否开启硬件加速为完全状态。开启硬件加速步骤:选择桌面空白处,右键弹出“属性”对话框,选择“设置”选项卡,点击“高级”按钮,在新弹出对话框中选择“疑难解答”选项卡,启用硬件加速为完全。

问:为什么将制作的三维专题图添加到三维场景后没有显示?

答:在使用SDB数据制作三维专题图时,在将制作好的三维专题图加入到三维场景中后,需要调用该三维专题图层的 UpdateData() 方法(即 Layer3DDataset.UpdateData() 方法),才能显示制作的三维专题图。

问:我已经有了DEM数据,三维可以加载地形吗?

答:在SuperMap Objects Java/.NET 6R产品中,可以加载已有的DEM地形数据,为了使效果更加逼真,建议添加与DEM数据集同区域的影像数据集。

问:二维地图中的数据,可以加载到三维场景中吗?

答:在SuperMap Objects Java/.NET 6R产品中,可以加载工作空间中已有的数据集(数据集坐标系为WGS84坐标系)。

问:在三维模块中,是否可以实现其它三维软件的球体浏览效果?

答:在SuperMap Objects Java/.NET 6R产品中,提供了三维模块,实现了基于球体的三维浏览功能。

问:设置选择集的填充前景色无效,总是显示对象本身的演示,只有边线根据高亮?

答:请查看选择集的风格属性中的填充符号ID是多少,如果是1表示不填充,就是您现在看到的效果。此时需要把ID设置为0,该符号为实体填充。

问:设置MapControl.Action属性为Create**常量时,有时会失败?

答:请查看地图是否有可编辑图层,在没有可编辑图层时会设置失败。如果想绘制临时对象,请在设置Action前,先设置MapControl的TrackMode属性。

问:通过SuperMap Deskpro和SuperMap Objects Java/.NET 6R查看同一个图层的符号大小或线宽数值不同,SuperMap Deskpro是SuperMap Objects Java/.NET 6R 的十倍?

答:SuperMap Objects Java/.NET 6R 中使用的逻辑坐标单位与SuperMap Deskpro不同,SuperMap Objects Java/.NET 6R中的是毫米为单位,SuperMap Deskpro中是以0.1毫米为单位。

问:监测站的水位是随时变化的,我可以使用动态数据制作专题图吗?

答:在SuperMap Objects Java/.NET 6R产品中,可以使用内存数据制作专题图,并不需要数据存储在某个表或数据集某个属性字段中。

问:可以实现类似天气预报的专题效果吗?

答:在SuperMap Objects Java/.NET 6R产品中,提供了混合标签专题图,可以通过标签矩阵来制作标签专题图,标签矩阵中可以包含普通文本字段,也可包含代表图片位置的文本字段,实现图文并茂的标签专题图效果。

问:我现在有某省每个市的学校分布数据,学校的名称可否每个市都不一样?

答:在SuperMap Objects Java/.NET 6R产品中,提供了分段标签专题图,可以将标签专题图通过字段进行分段,分别设置每段的标签样式。

问:地图坐标系与屏幕坐标系的区别?

答:地图坐标系的坐标原点为左下角,X值在往右的方向增加,Y值在往上的方向增加;屏幕坐标系的坐标原点在左上角,X值在往右的方向增加,Y值在往下的方向增加。

问:如何修改SuperMap Objects Java/.NET 6R默认加载的符号库、线形库和填充库?

答:通过资源管理器打开软件的安装目录,在Bin文件夹下可以找到Maker.sym、Line.lsl、Fill.bru三个文件,分别对应的是符号库、线形库和填充库文件。使用桌面软件将其修改或使用其他文件覆盖这三个文件就可以达到修改的目的了。

问:在SuperMap Objects Java/.NET 6R中,如何设置跟踪层上三维体的半透明效果?

答:在设置三维体颜色时,即GeoStyle3D. FillForeColor从系统颜色的ARGB值获取,设置A值(范围为0-255),具体数值根据需要的透明度设置。

问:在SuperMap Objects Java/.NET 6R中,如何保存地图?

答:先通过Map类中的toXML方法得到表示地图内容的字符串,之后使用Maps.add方法,通过字符串的方式添加地图到地图集合对象中,最后保存工作空间即可。

问:为什么Oracle和SQL引擎数据源制作单值专题图时,不能将单值字段表达式设置为条件表达式的?

答:对于Oracle和SQL引擎类型的数据源,制作单值专题图的时候,单值专题图的字段表达式目前不支持条件表达式。 如果传入的字段表达式是条件表达式的,例如:“SmID>100”,那么制作单值专题图会失败,返回NULL; 所以字段表达式应该为字段名或者字段运算式,例如 (SmID) 或者( SmID + 1) 等。

问:在 MapControl 中没有显示的情况下,能调用 DoMouseDown 操作吗?

答:在 MapControl 中没有显示的情况下,请不要调用任何 Do 操作(例如调用 DoMouseDown 操作),否则会出现崩溃。

问:标签专题图与统计专题图同时显示时的避让问题?

答:默认情况下Map的isTextOrientationFixed()方法的返回值为true,文字避让会导致某些文字不显示,所以当在一个Map中既有标签专题图又有统计专题图时,或者有多个标签专题图、统计专题图、文本图层时,地图的显示效果会根据图层添加的顺序不同而不同。如果将Map的setTextOverlapAvoided(boolean value)设置为false,则可以显示重叠文本。

问:地图要显示数据之前是否必须先和工作空间建立连接?

答:是,当用户利用 MapControl 控件显示数据前,必须通过 Map 的

setWorkspace(workspace) 方法与 Workspace 对象进行关联。

问:使用 Oracle 数据库应注意什么问题?

答:要使用 Oracle 数据库,必须安装 Oracle 客户端;当连接比较多的时候,需要修改 Oracle 服务器的最大 Connection 数和最大 Cursor 的个数。

问:为什么在运行出图、显示等相关代码时,会出现fontmanager.dll找不到的异常?

答:此问题是由于在系统环境里,有多于1个不同版本的JDK路径,清空但保留一个与所使用IDE配置中一致的JDK路径即可。

问:在SuperMap Objects Java/.NET 6R中,如何设置与设备无关的属性?

答:需要设置Environment类中的CustomMapRatioEnable属性为true,或者在bin文件夹中修改SuperMap.xml中的CustomMapRatioEnable=true。此属性解决问题:地图中的标签专题图字体会因机器分辨率的不同而显示出不同的大小。

问:怎么给纯属性表数据集增加记录?

答:使用AddNew方法时传入null作为参数,然后Update。

问:程序退出之前需要把工作空间和地图关闭吗?

答:需要关闭,关闭的顺序是先关闭Map对象或MapControl对象,后关闭Workspace对象。

问:为数据集添加属性字段时为何失败?

答:为数据集添加属性字段是对整个数据集的属性表结构做了一定修改,此时需要确认该数据集是否在地图中被打开,若已被打开,请先移除对应图层后,再添加属性字段。

问:Recordset是否需要释放?若需要,何时释放?

答:需要释放。在一个函数里局部使用的Recordset对象,在使用完毕后,需要调用该对象的Dispose方法。

问:使用GetRecordSet方法或使用Query方法获得记录集Recordset,有时候不可编辑是怎么回事?

答:使用GetRecordSet方法,要注意设置其第二个参数,即设置查询的游标类型,如果设置成Static类型,即静态类型的话,得到的记录集是不可编辑的,只有设置为Dynamic才能对记录集进行编辑,同理,使用Query方法也要注意这个问题。

问:文件型数据源在进行记录集批量更新时为何失败?

答:不支持对SDB数据源的记录集批量更新操作,UDB数据源及数据库型数据源没有此问题。

问:Java组件中,SceneControl创建后,设置其相关属性会导致系统崩溃?

答:SceneControl在窗体打开后才能初始化,所以建议在JFrame的windowOpened事件中(或事件之后)对SceneControl进行初始化。主要原因在于OpenGL在绘制图形时需要获取窗体句柄,JFrame的窗体句柄在显示后才能获得。

问:.NET的控制台程序无法打开SDB数据源,但是其他类型的数据源是可以正常使用的?

答:在Main方法上添加[STAThread] 特征即可解决该问题。

问:Java中UI程序使用SDB数据系统崩溃,但是使用其他引擎的数据可以正常工作?

答:请查看代码是否使用这种方式来启动

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {

public void run() {

// 要实现的类和方法 }

} );

}

问:现在我有一些临时的数据,想添加到地图中,但我不想保存,怎么办?

答:在SuperMap Objects Java/.NET 6R产品中,提供了内存数据源,为临时及动态数据提供了支持。

问:我现在知道大批的GPS点坐标,如何能快速生成一个对应数据集?

答:在SuperMap Objects Java/.NET 6R产品中,针对数据库型数据源现提供了批量更新功能,可以一次性添加大批量的几何对象,速度比添加一条记录更新一次的普通更新方式有了质的飞跃。

问:打开一个面图层,为什么有一部分对象会显示不出来,只有部分对象可以看到?

答:默认情况下,MapControl对几何对象的最大节点数有限制,当组成线或面对象的节点数超过这个限制的时候,对象就不会显示出来了。

可通过如下两种方式解决这个问题:

(1)通过设置MapControl. Map.MaxVisibleVertex属性将节点数的限制改大一些;

(2)对数据进行重采样,减少节点数量。

问:出图,或是地图的显示并没有与ViewEntire()方法的效果一样?

答:请检查是否在调用 ViewEntire() 方法后又重新调整了地图的 ImageSize 或是地图控件的大小。如果调整大小后仍需全幅显示,则需再次调用 viewEntire() 方法。

问:为什么设置了同样字号的字体大小,但是在不同的操作系统下(如Windows下和Linux下)显示的大小却不一致?

答:由于各操作系统绘制文字的方式不同,因此对于同样的字体,在不同操作系统下设置为同样的字号时,文字显示的大小可能会出现不同。

问:手动配置许可时应该注意哪些问题?

答:许可配置文件为 SuperMapLic.ini;如果手动配置,需要保证文件内部节点名称的正确性;手动配置时,用户名和单位名要和生成许可时的一致;生成许可时,用户提供的计算机名不能超过15个字符(英文),这是 Windows 操作系统的限制。

问:当前地图窗口已经打开了某个地图,现在打开另一个地图,在打开过程中图层管理器有图层名称叠加导致的黑色重影现象出现,该如何解决?

答:在打开地图(this.mapControl.Map.Open(mapName))之前,先关闭当前已经存在的地图,即执行this.mapControl.Map.Close();layersControl.Refresh()方法,这样之后就不会有该现象存在了。

问:linux系统环境下怎么查看Oracle客户端和服务器是32位的还是64位的?

答:查看linux系统环境下Oracle客户端的位数,在客户端的安装目录下运行 file libclntsh.so.10.1(可以为任意库)即可;查看linux系统环境下Oracle服务器的位数,运行select * from v$version即可。

问:为什么在运行出图、显示等相关代码时,会出现fontmanager.dll找不到的异常?

答:是因为在系统环境里,有多于1个不同版本的JDK路径。清空并保留一个与所使用IDE配置中一致的JDK路径即可。

问:使用SuperMap Objects .NET 6R时,调整了地图中图层的顺序,图例管理器没有改变,为什么?

答:6R的组件中图例管理器并不会根据地图图层的变化调整,因此,在地图中的图层调整后,需要将图例管理器和地图重新关联一下,LayersControl.Map=MapControl.Map

问:如何实现对象风格的半透明显示?

答:使用GeoStyle3D.FillForeColor,设置前景色透明度的方法解决。 例如: style.FillForeColor = Color.FromArgb(125, 250, 250, 50);

问:布局中如何实现锁定地图、放大地图和解锁地图?

答:实现代码如下:

MapLayoutControl mapLayoutControl = new MapLayoutControl();

//锁定地图mapLayoutControl1.ActiveGeoMapID = 1;

//对地图进行放大操作mapLayoutControl1.MapAction = SuperMap.UI.Action.ZoomIn;

//解锁地图mapLayoutControl1.ActiveGeoMapID = -1;

问:如何从web服务中获取栅格数据

答:若web服务传输结果为栅格数据,一般会包含栅格数据中某特定点的坐标(如左下角点)、栅格数据行数、列数、栅格每行列处的栅格值,有了如上参数后,可创建一个相应地理范围的栅格数据,再为每行列处赋值。

问:为什么无界面出图的时候,图片的输出范围不正确?

答:在无界面出图时,出图范围需要根据设置setImageSize()来确定。

问:网络数据集有变更,网络分析对象需要如何处理

答:需要将TransportationAnalyst对象dispose后,重新加载TransportationAnalystSetting及参数设置。

问:SuperMap Objects Java 在调用TransportationAnalyst类中对交通网络数据集和转向表进行数据检查的check()方法时有什么注意事项?

答:使用check()方法需要在设置交通网络分析环境(setAnalystSetting 方法)之后调用,但不需要在加载网络模型(load 方法)。

问:能否通过点击选择跟踪层中的几何对象?

答:首先通过TrackingLayer的hitTest(Point2D point2D,double tolerance)方法,获取与point2D的距离在tolerance容限范围内的几何对象,返回其ID,然后通过TrackingLayer的get(int index)方法,获取Geometry。

问:在进行叠加分析的时候有哪些注意事项?

答:1.进行叠加分析的两个数据集中,被称作输入数据集(在 SuperMap GIS 中称作第一数据集)的那个数据集,其类型可以是点、线、面等;另一个被称作叠加数据集(在 SuperMap GIS 中称作第二数据集)的数据集,其类型一般是面类型。

2.应注意面数据集或记录集中本身应避免包含重叠区域,否则叠加分析结果可能出错。

3.叠加分析的数据必须为具有相同地理参考的数据,包括输入数据和结果数据。

4.在叠加分析的数据量较大的情况下,需对结果数据集创建空间索引,以提高数据的显示速度

问:对网络数据集进行空间查询时,如何获取节点数据集的查询结果?

答:网络数据集中节点数据集为网络数据集的子数据集,即Dataset.ChildDataset,通过网络数据集获取其子数据集,对子数据集进行空间查询即可。

问:制作三维分段专题图或三维单值专题图时,设置的专题图子项的风格不显示?

答:需要将专题图子项的建模风格设置为有效,默认值是false。即需要设置IsModellingStyleEnabled属性为True。

问:在SuperMap Objects Java中创建字段的时候,对字段名称有何限制?

答:1. 不能以数字、下划线以及"sm"开头,必须由汉字、字母、数字和下划线组成。

2. 名称长度不得为0,也不得超过30个字节(即30个英文字母或者15个汉字)。

3. 不能有非法字符,除数字、字母、汉字、下划线以外的所有字符,如空格、括号等。

4. 不能与各个数据库的保留字段冲突。

问:SuperMap Objects Java 中怎么将一个数据集的字段值追加到另一个数据集里面?

答:将一个数据集的字段值追加到另一个数据集里面可以使用DatasetVector类的appendFields方法,这个方法可以从源数据集向目标数据集追加字段,并根据关联字段查询结果对字段进行赋值。

问:想通过SQL查询获得某个属性字段中无重复的所有值,即查询唯一值,如何构造查询参数?

答:使用DatasetVector.query(QueryParameter queryParameter)方法,查询结果字段前加DISTINCT关键字。例如想获得TestLine数据集的TestField字段的唯一值,代码片段如下:

DatasetVector dtLine = (DatasetVector)datasource.getDatasets().get(“TestLine”);

QueryParameter queryParameter = new QueryParameter();

queryParameter.setHasGeometry(false);

String []strings = {“DISTINCT TestField”};

queryParameter.setResultFields(strings);

Recordset recResult = dtLine.query(queryParameter);

问:SuperMap Objects Java怎样在无图形界面的情况下配置许可?

答:在linux无图形界面的情况下配置许可命令为 java -jar com.supermap.license.jar -config configfile,例如在opt路径下有许可名为linux_smf.lic,则配置命令为 java -jar com.supermap.license.jar -config /opt/linux_smf.lic,查询许可的命令为:java -jar com.supermap.license.jar -query。

问:COM组件中类似scaTrackPolyline这一类在跟踪图层上绘制对象的Action现在怎么没有了?

答:在.NET及Java组件中,可编辑图层和跟踪图层的对象绘制Action已统一,若要在跟踪图层上绘制对象,可设置MapControl.TrackMode = TrackMode.Track,若要在可编辑图层中绘制对象,设置MapControl.TrackMode = TrackMode.Edit即可。

问:如何在矢量栅格转换时添加一个进度条显示?

答:转换前设置栅格分析环境gridAnalystSetting.setShowProgress(true),调用conversionAnalyst.addSteppedListener(SteppedListener l)添加进度条事件即可。

问:布局中如何设置文本对象的旋转角度?

答:设置TextPart.Rotation属性,逆时针方向为正方向,单位为度。而不是设置TextStyle.Rotation。

问:三维图层管理器下的屏幕图层节点可以移除吗?

答:可以。在控件初始化之后添加下面这句代码即可移除:this.layersControl.Layer3DsTree.ScreenLayer3DNode.Remove();。

问:我有excel、txt、csv等一些格式的数据,希望将这些数据中的属性制作为专题图应该如何实现?

答:建议按如下步骤实现:

1)将外部格式(如excel等)导入,记录在内存中;

2)选定相应类型的专题图,通过MemoryData来记录外部格式数据的信息;

问:Objects .NET 6R如何控制粒子对象的旋转角度?

答:对于粒子对象(GeoParticle),需要通过修改粒子发射器(ParticleEmitter)来控制粒子的旋转角度,及ParticleEmitter.Direction属性。

问:SuperMap Objects Java在Linux系统中使用Oracle数据引擎有哪些注意事项?

答:如果使用过程中用到Oracle数据引擎,请安装Oracle数据库,并在系统的profile文件中做如下设置:

LD_LIBRARY_PATH= ORACLELIB:ORACLE_LIB:ORACLEL​IB:LD_LIBRARY_PATH

export LD_LIBRARY_PATH

export PATH=LDLIBRARYPATH:LD_LIBRARY_PATH:LDL​IBRARYP​ATH:PATH

问:如何通过代码添加栅格符号到点符号库?

答:实现思路如下:

1.构建几何对象:GeoPicture;

2.构建符号对象:SymbolMarker.FromGeometry方法;

3.添加符号到符号库,如:

Resources resources = this.workspace.Resources; resources.MarkerLibrary.Add(symbolMarker as Symbol)

4.保存工作空间:Workspace.Save方法。

问:构造几何对象并将其添加到跟踪层上显示,那构造该几何对象时,其单位如何确定?

答:跟踪图层的单位是和当前地图单位保持一致的,那么,构造该几何对象时,也保持和当前地图一致即可。

问:对于模型缓存图层,如何获得选中对象的属性信息?

答:使用Layer3DVectorFile.GetFieldValueOfSelectedObject 方法 ,可获得矢量文件缓存中当前选中对象的某一字段的值。

问:SuperMap Objects Java在Linux系统无图形界面环境下,怎样使用物理网卡地址申请许可?

答:在linux无图形界面的情况下读取物理网卡地址的命令为 java -jar com.supermap.license.jar -interface,申请的时候提交这个物理网卡地址即可。

问:添加GeoBox、GeoCircle3D、GeoEllipsoid、GeoPie3D等对象至三维动态跟踪层,报错内存已损坏?

答:添加GeoBox、GeoCircle3D、GeoCone、GeoCylinder、GeoEllipsoid、GeoHemiSphere、GeoPie3D、GeoPieCylinder、GeoPyramid 和 GeoSphere 对象时,需要调用GetGeoModel方法使其按GeoModel的方式重新构建,然后再加入到三维动态跟踪层。

问:如何提高专题图图层的浏览性能

答:1.对专题图字段创建字段索引;

2.若图层有过滤条件,对过滤条件涉及到的字段创建字段索引;

3.对图层对应数据集创建空间索引;

问:二维自定义专题图如何实现渐变效果?

答:设置二维自定义专题图(ThemeCustom)的渐变模式(FillGradientModeExpression属性),前景色(FillForeColorExpression属性)和背景色(FillBackColorExpression 属性)分别为起始和终止颜色。

问:使用DatasetVector.IsAvailableFieldName 方法验证字段的合法性时总是返回为False,怎么回事?

答:该方法用于验证要新建的字段名称的合理性,不是对已有字段进行验证,如果对已有字段进行验证就总是返回为False。

问:为何设置三维面对象的填充风格无效?

答:请检查高度模式是否为贴地模式。设置三维面对象填充风格(GeoStyle3D.FillSymbolID属性)时,只有在贴地模式下才有效;在非贴地高度模式下,对三维场景中的面几何对象或拉伸面设置填充符号均无效,在场景中显示时仍然使用编号为0的填充符号。非贴地模式时,如果需要为拉伸面设置填充风格,可改为设置顶部贴图(GeoStyle3D.TopTextureFile 属性 )及侧面贴图(GeoStyle3D.SideTextureFiles 属性)来实现填充风格。

问:删除图层对应的数据集后为何会报错

答:图层对应的数据集删除后报错的可能原因有:

1.若是从上至下遍历图层,并删除图层对应的数据集,请确保删除的顺序不是从顶图层到尾图层,尽可能从尾图层遍历往上删除;

2.此数据集是否在别处仍在使用,如在另一个地图窗口在还在使用。

问:使用生成内存专题图后保存地图,关闭地图后再次打开地图,内存专题图风格消失?

答:内存专题图只是临时在地图中进行数据的展示,不支持将内存专题图内容保存为地图至工作空间。

问:事例代码启动报*.dll找不到,如何解决?

答:解决类似的错误可以从五个方面入手:一、打开代码后重新引用*.dll包;二、修改解决方案平台为对应的x86或者x64;三、检查环境变量Path的值是否配制了正确的Object bin包路径;四、目标框架的.Net frameWork版本是否正确;五、打开代码的时候不用*.sln文件,用*.csproj文件。

问:开发的过程中如何判断一个对象是否在地图窗口中显示出来了?

答:可以通过影响对象是否显示的条件去判断,如比例尺、地图范围、过滤显示、图层是否显示。

问:用LayersControl注册地图和场景右键菜单的时候,运行程序报“未将对象引用设置到对象实例”?

答:出现这种错误一般跟设置LayersControl的Map和Scene的BeforeNodeContextMenuStripShow事件放置的位置有关,因为LayersControl的Map属性和Scene属性是互斥的,设置了Map属性Scene属性就为null,如果想注册地图右键事件 ,因此设置地图BeforeNodeContextMenuStripShow一定要保证LayersControl的Map属性不为null。

问:地图当中有多个图层,其中有几个图层的部分数据高亮显示了,如何控制高亮显示的数据居中?

答:新建临时CAD数据集,把高亮的数据都AddNew添加进去,获取临时数据集的Bounds赋值给map的ViewsBounds属性.

问:相机飞行到单个模型或多个模型所涉及的经纬度怎么确定?

答:单个模型可以直接用GeoModel获取它的经纬度;多个模型可以用查询到的Recordset.Bounds获取所有记录的外接矩形。

问:已经注册好了WorkspaceTree.ItemDrag、MapControl.DragEnter、MapControl.DragDrop三个事件,而且三个事件中的代码也没有问题,为什么不能将数据集拖拽到地图中呢?

答:代码中只需注册WorkspaceTree.ItemDrag、MapControl.DragEnter、MapControl.DragDrop三个事件才能进行数据集拖拽到地图的操作,默认的m_mapControl.AllowDrop是为false的是不支持拖拽,因此将m_mapControl.AllowDrop改为true即可。

问:自定义方法重采样的时候,代码和事例代码一样,为什么重采样后数据集没有变化?

答:ResampleInformation的Tolerance属性,单位与数据集坐标系单位相同。 当它的值小于相隔两点的值,是不会进行重采样。

问:打开WinForm界面设计器时,系统报错找不到指定的文件,如何解决?例如:Could not load file or assembly ‘SuperMap.Mapping, Version=7.0.0.0, Culture=neutral, PublicKeyToken=0635c574ea890381’ or one of its dependencies.

答:确保工程引用的DLL动态库路径和环境变量里面的路径保持一致,然后重启Visual Studio打开工程即可。

问:在SuperMap iObjects 7C中使用GridToXY方法获取栅格点坐标,为什么和栅格转点获取到的点坐标不一致?

答:GridToXY获取的是像素点左上角的坐标,栅格转点为获取像素点中心点坐标,若希望计算栅格中心点坐标,可以使用GridToXY获取到像素点左上角坐标后,通过(x+x分辨率/2,Y-Y分辨率/2)公式计算中心点。

问:已经在FlyManager中设置了当前的飞行路线不显示,为什么场景加载的时候还是显示但飞行的时候又消失了呢?

答:设置好FlyManager已后记得要更新FlyManager.Update。

问:如果用户已经创建了 iPortal 的系统管理员账号,如:admin,门户数据也初始化了,此时由 SQLite 数据库切换至 MySQL 数据库,访问门户首页的地图、服务列表时,为什么是空的,批量注册服务出错,控制台提示“Cannot add or update a child row: a foreign key constraint fails…”?

答:因为丢失了原来 SQLite 数据库中 user_infos 表里的用户信息,需要将%SuperMap iPortal_HOME%webapps\iportal\WEB-INF\iportaldata 下的 iportal.db 中的用户信息同步到 MySQL 数据库中。具体操作为:在 MySQL 数据库中的 user_infos 表中添加 admin 这条记录,SQL 语句为:

insert into user_infos(name) values(“admin”);

此时需要确保 MySQL 数据库中的servicerooturls 表是空的,如果有记录,需要删除,然后重启 iPortal 服务即可。

需要注意的是:如果您已经使用了 iPortal 创建地图、注册服务等,切换至 MySQL 数据库时如果想保留之前的门户数据信息,那么还需要同步 iportal.db 中的所有门户数据信息。

问:经纬度坐标系下如何计算两个点之间的距离(结果以米为单位)?

答:可以直接使用puteGeodesicDistance()计算测地线长度的方法实现。

问:根据点的符号ID如何定位到其对应的点状符号类?

答:可按如下方法实现:Symbol m_symbol = workspace.Resources.MarkerLibrary.FindSymbol(ID);

SymbolMarker symbolMarker=m_symbol as SymbolMarker;

问:使用导入shp文件,导入后数据集里面的中文字段全部变为乱码?

答:使用导入数据集,字符集编码默认为ASCII编码,建议查看shp文件的字符集编码是否为UTF-8或其他,导入时TargetEncodeType设置相应编码方式即可。

问:一个物流中转站,派多辆车前往不同方向的配送点,如何能得出不同的路线?

答:确定一个物流中转站的配送车数据为N,需要将TransportationAnalyst.FindMTSPPath方法中中心点坐标参数配置为N个重复的中心点坐标数组并将第三个参数设置为false即局部最优。

问:使用时,将GeoText对象加入数据集时,发现锚点处于左上角,如何进行修改?

答:可以通过GeoText的TextStyle.Alignment进行设置,选择对齐方式,默认是文本左上角对齐。

问:如何修改三维场景浏览时的缓存路径?

答:设置Layer3DMap类的CacheDirectory属性。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。