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

来源:互联网 发布:keeper是什么软件 编辑:程序博客网 时间:2024/03/29 20:39

作者:皇皇

问:JAVA组件调用打印机对话框printer.printWithDialog(),报错空值异常,找不到打印机?
答:在.Net组件里直接调用可以弹出打印机对话框,但是在Java组件里,需要先设置打印机名字(实质实例化一个打印机)printer.setPrinterName(“doPDF 8”),再调用printer.printWithDialog()就可弹出打印机对话框。

问:SuperMap iObjects Java 8C中运行Web Project工程,报缺少Wrapj.dll的错误,怎么办?
答:报这个错误有两个原因,可以先将Web工程作为Java工程来运行,如果还报这个错误,则是由于在【系统高级设置】中的没有设置工程中引用jar包所在的java bin路径,设置完后需重启开发平台;如果运行Java工程时没有报错,则说明是Web工程中的tomcat没有设置对应的objects java bin path路径,需要在【Window】-【Preferences】-【Servers】-【Tomcat】-【Paths】中设置bin的path路径和引用的对应的jar包。

问:缓冲区分析用哪个接口实现?如何设置字段为半径?
答:缓冲区分析需要使用BufferAnalyst.CreateBuffer方法, 使用BufferAnalystParameter的LeftDistance和RightDistance属性,接口设置字段为左/右半径。

问:调试工程报错,报“‘未处理BadImageFormatException’•••‘其他信息:未能加载文件或程序集 ‘SuperMap.* Version =’ 或者它的某一个依赖项。试图加载格式不正确的程序’”的错误。
答:第一,保证编译目标平台位数和引用动态库位数保持一致
第二,环境变量中只有一个组件bin路径,且与引用动态库路径保持一致
第三,把工程的工作目录和引用路径设置为引用动态库路径
第四,如果以上方案不能解决问题,先运行uninstall.bat,然后在以管理员身份运行install.bat。

问:对象编辑的时候如何实现捕捉功能?
答:通过Mapcontrol的SnapSetting属性设置对应的捕捉功能,SnapSetting类的Item属性设置指定的捕捉功能是否开启。需要注意的是,在跟踪图层中编辑对象时地图中开启的捕捉功能是不起作用的。

问:三维场景中如何实现桌面产品效果中的缩放到本图层?
答:通过Scene.EnsureVisible(Layer3D)实现,EnsureVisible还可以实现根据给定的经纬度范围显示相应区域的场景。

问:可以判断两个三维几何对象是否相交吗?
答:可以,具体接口是:Geometrist3D.HasIntersection(Geometry3D geometry3D,Geometry3D intersectGeometry3D),但是组件版本要求在8.0.0版本之上,需要注意的是:该方法现在只限于判断两个三维体是否相交,或三维线与三维体是否相交。两个三维体相交的判断依据是二者具有公共的体积,三维线必须穿过三维体才构成相交。

问:使用SuperMap iObject .NET 8C如何把原始型缓存转换成紧凑缓存?
答:首先实例化mapCacheFile对象,然后用mapCacheFile.Open打开要转换的缓存文件sci,最后用mapCacheFile.Convert方法进行转换。

问:如何将数据集导出为cad数据集是带扩展字段?
答:需要将ExportSettingDWG导出参数设置类中的ExportingXRecord、ExportingExternalData属性设置为true;

问:如何获取场景中某一位置的高程?
答:有两种方法:(1)如果是已经有对应的经纬度,通过栅格数据利用对应的经纬度信息获得此位置对应的栅格行列数:DatasetGrid.XYToGrid 方法,再通过DatasetGrid.GetValue方法获取对应的栅格值;(2)如果是通过鼠标点获取对应位置的高程值,则直接通过scene.PixelToGlobe(Point point,PixelToGlobeMode mode)获得三维点,三维点的z值即为此点的高程值。

问:iObjects.NET 8C中在三维场景中跟踪层上设置三维线符号库中的风格不起作用,为什么?
答:跟踪图层设置线的风格,如果设置的是三维线型符号,需要把GeoStyle3D.IsMarker3D属性设置为true风格才能生效 。

问:SuperMap iObject .NET 8C开发的程序,当系统的Microsoft.NET Framework插件版本是4.6时不能运行,如何修改?
答:修改程序的.config配置文件,添加节点




问:为什么设置统计专题图IsGraphSizeFixed 属性为false的时候专题图图层有时显示不出来了?
答:统计专题图IsGraphSizeFixed 属性修改时还需要去修改MaxGraphSize属性的值,因为MaxGraphSize是统计专题图中统计符号显示的最大值,当IsGraphSizeFixed()属性值为 true 时,单位为 0.01mm;当IsGraphSizeFixed()属性值为 false 时,使用地图单位。当MaxGraphSize值小于统计符号最小值就会显示不出来,单位不同,相同的数字代表的大小不同,所以要同时修改。

问:在FindVRPPath物流配送方法中,其中配送点DemandPointInfo的StartTime 、EndTime、UnloadTime和车辆VehicleInfo的StartTime 、EndTime具体表示什么意义呢?
答:配送点DemandPointInfo的StartTime 、EndTime、UnloadTime分别表示配送目的点的上班时间、下班时间、卸货所需时间。在上下班时间外的时候不接受送货。车辆VehicleInfo的StartTime 、EndTime同理表示车辆的上下班时间,在改时间段外的时间不进行送货。与实际生活相结合起来。

问:可以实现图层管理器和布局控件里面的地图关联吗?
答:布局中只是存储了地图名称,可以通过名称查询到工作空间里面的地图,将查询到的地图和图层管理器关联起来,每次对图层管理器进行操作就保存一个地图和刷新布局对象,就可实现同样的效果。

问:三维场景中如何为三维线对象设置线宽为0.15的图层线风格
答:Layer3DSettingVector.Style设置线符号,将线符号的宽度设置为1,然后在通过Layer3DSettingVector.SymbolScaleXField和Layer3DSettingVector.SymbolScaleYField属性设置xy方向的缩放比为0.15,即可实现为线对象设置线宽为0.15的图层风格

问:如何创建一个内存数据源来存储临时数据?
答:DatasourceConnectionInfo info = new DatasourceConnectionInfo();
info.EngineType = EngineType.UDB;
info.Server = “:Memory:”;
info.Alias = “Import”;
Datasource datasource = Workspace.Datasources.Create(info);

问:数据集坐标系为地理坐标系,如何简单的获取数据集中线对象的长度(以米为单位)?

答:不能用geoline.Length 属性来获取,这样获取的单位和数据集单位一致。可以通过获取数据集的系统字段SMLENGTH,对应的值即为单位为米的长度值。

问:用SuperMap iObject .NET 8C如何打开符号编辑器修改指定的二维点线面符号?
答:首先得到符号的ID或者名称,获取资源库resources(可通过workspace.Resources),然后获取符号对象symbol(点是resources.MarkerLibrary.FindSymbol(ID),线是resources.LineLibrary.FindSymbol(ID).面是resources.FillLibrary.FindSymbol(ID)),再者用SymbolEditDialog.ShowDialog(symbol, resources)打开编辑器,最后编辑完成后确定即可。

问:SuperMap iObject .NET 8C地图图层风格修改后,图层管理器的样式如何更新?
答:地图图层风格更新后,刷新地图,然后刷新图层管理器指定图层layersControl.LayersTree.RefreshNode(layersControl.LayersTree.FindNode(layer));

问:SuperMap iObjects .NET 8C在跟踪图层添加面对象设置半透明填充符号不起作用。
答:面要用三维对象,设置geoStyle3D.AltitudeMode高度模式为非贴地,设置面的前景色geoStyle3D.FillForeColor = Color.FromArgb(50, Color.Red),不要用填充符号。

问:打开两个SceneControl窗口进行可视域分析,为什么Viewshed3D.Clear()清除后场景中还有残余?
答:清除前先捕捉场景sceneControl1.Focus(),然后再清除Viewshed3D.Clear(),最后释放Viewshed3D.Dispose()。

问:SuperMap iObject .NET 8C布局打印的方法是什么?
答:保证电脑已连接打印机,并正确安装打印机驱动。在布局对象中获取Printer(mapLayout.Printer),设置纸张大小PaperSize、打印朝向Orientation等属性,然后printer.ShowPrintDialog(),弹出窗口选择打印机进行打印,或者设置打印机printer.PrinterName=”打印机名称”,直接进行打印printer.Print()。

问:SuperMap iObject .Net 8C 布局元素修改后如何更新?
答:先用元素的ID通过MapLayout.Elements.SeekID(ID)方法把当前布局元素指针,定位于该布局元素,然后用MapLayout.Elements.SetGeometry()方法进行替换,最后保存布局保存工作空间。

问:使用Interpolator类的Interpolate方法对数据进行插值时如何显示插值的进度?
答:使用GridAnalystSetting.IsShowProgress 属性, 可设置是否显示进度条。

问:怎样设置使面数据集对应的图层风格只显示出边线而没有填充?
答:设置LayerSettingVector的Style属性,将FillSymbolID设置为1即可。

问:在使用SuperMap iObjects.NET 8C进行栅格数据集镶嵌时,如何判断融合操作已经完成呢?
答:栅格数据集镶嵌类RasterMosaic的Stepped事件中无结束标志,但是可以通过使用try catch finally来实现,融合完成后会进入finally中,即可得知融合已完成。

问:在跟踪层上如何设置栅格符号随图缩放
答:1、设置对象的geostyle.Markersize=new Size2D(2.5,2.5);
2、Map.TrackingLayer.SymbolScale= Map.Scale;
3、Map.TrackingLayer.IsSymbolScalable=true;

问:导入一个空的shp数据集失败是为什么?
答:7C版本不支持导入空的shp数据集,但是在8C中新增加了一个接口,可实现导入空的shp数据集,将importSettingSHP.IsImportEmptyDataset(设置或获取是否导入空的数据集 )设置为true即可实现。

问:使用SuperMap iObjects .NET 8C时,如何在简单线几何对象和面几何对象中绘制有弧线的边?
答:在向点集合对象加入点集中,需要绘制弧线的边时,构造一个GeoArc对象,然后获取圆弧对象的点集,加入到点集合对象中,然后再继续构造简单几何对象即可。

问:为什么设置场景类型为Flat(Scene.Type=SceneType.Flat),生成的场景还是球面场景?
答:新建平面场景时需要在new sceneControl的时候设置type为NonEarthFlat。

问:SupErMap iObject .NET 8C 三维缓冲区分析结果添加到跟踪图层,为什么显示不出来?
答:通过Geometrist3D.CreateBuffer方法生成的三维缓冲区模型无法添加到跟踪图层和KML图层,要把它添加到模型数据集,在把模型数据集添加到场景图层。

问:自定义专题图Theme3DCustom如何设置在地下,并且地表透明可以看得见?
答:直接设置AltitudeModeExpression属性为2是可以实现地下效果,但是地表透明看不见,可以通过以下方式设置:
Layer3D layer3DOK = sceneControl.Scene.Layers[0];
Layer3DDataset sd = layer3DOK as Layer3DDataset;
Layer3DSettingVector Sytle = sd.AdditionalSetting as Layer3DSettingVector;
GeoStyle3D geoStyle3D = Sytle.Style;
geoStyle3D.AltitudeMode = AltitudeMode.AbsoluteUnderGround;
Sytle.Style = geoStyle3D;
layer3DOK.UpdateData();

问:使用DatasetVector.UpdateField 方法更新文本字段失败?
答:dataset.UpdateField(5, “hahahaha”, “”);更新失败!更新文本字段需要对文本内容添加单引号(即在双引号内再添加一对单引号)即可更新成功。

问:设置FlyManager的飞行路线,飞行时报内存的错误?
答:检查飞行路线是不是有多条飞行路径,在组件里飞行时只允许飞行路径只有一条。设置的接口是FlyManager.Routes.CurrentRouteIndex。

问:如何设置三维图层在场景中的任何高度都可见?
答:设置三维图层的最大可见高度属性Layer3D.MaxVisibleAltitude,一直可见设置为0即可。

问:调用recordset.addNew()方法,总是返回false,新增失败,为什么?
答:可能的原因有:1、数据源只读;
2、获取记录集时用了静态游标;
3、属性字段中有必填字段,却只用了addNew(Geometry geometry) 方法,没有传属性值;
4、经纬度的数据,不在范围内;
5、判断一下数据集类型,再加对象,不能将GeoPoint加到线数据集中等

问:如何获取两调线段的最短距离?
答:通过Geometrist.Distance方法获取,结果的单位和坐标系有关,投影坐标系单位是米,地理坐标系单位度。

问:在场景缓存中,知道模型ID号如何定位到模型位置并高亮显示
答:首先获取缓存图层Layer3D,通过as强转为Layer3DVectorFile,
然后通过Layer3DVectorFile.Selection.Add(“ID”)添加到选择集就可以高亮显示,
再者通过Layer3DVectorFile的GetFieldValueOfSelectedObject(“LONGITUDE”)方法获取X坐标,GetFieldValueOfSelectedObject(“LATITUDE”)获得Y坐标,
最好通过X/Y坐标进行定位。

问:制作关联标签专题图,A、B关联后如何让B的属性字段追加到A属性字段后面
答:在生成专题图后进行显示时,需要设置DisplayFilter属性,否则专题图创建失败
关键代码如下:
QueryParameter parameter = new QueryParameter();
parameter.JoinItems = joins;
layer.DisplayFilter = parameter;

问:往KML图层添加模型,模型是添加进去了,但是为什么在图层管理器上却无法显示KML图层下的模型要素呢?
答:加载模型数据后,必须要刷新一下图层管理器的节点:layersControl1.Layer3DsTree.RefreshNode(layersControl1.Layer3DsTree.Layer3DsNode);

问:在三维场景中如何测量面积?
答:修改状态sceneControl.Action=Action3D.MeasureArea;然后添加添加事件sceneControl.Tracking += new Tracking3DEventHandler(TrackingHandler);在场景中绘制面过程中获取面积Tracking3DEventArgs.TotalArea.

问:如何显示软件的版本信息?
答:使用Workspace.AboutBox 方法 。通过“关于对话框”的超链接与北京超图软件股份有限公司取得联系,也可以查看 SuperMap iObjects .NET 的版本号和版权等信息。

问:添加矢量数据集到场景时提示:This PrjCoordSysType is not supported?
答:请检查数据的坐标系信息,一般是由于数据为平面直角坐标系引起的,需要为数据设置正确的坐标系。

问:使用SuperMap iObjects .NET 7C,运行二维地图工程正常,运行三维场景工程报错外部组件异常,如何解决?
答:检查显卡OpenGL版本,若OpenGL兼容低于OpenGL 1.5,直接升级显卡驱动即可。

问:如何获得多个点对象的外接矩形?
答:可将需要计算范围的点对象单独存储到某个点数据集,然后获取该数据集的范围,即这些点对象的外接矩形。

问:如何获取属性表数据集?
答:获取纯属性表数据集:DatasetVector dsT = Datasets[“纯属性表数据集名称”] as DatasetVector。

问:使用SuperMap iObjects .NET 7C,如何对数据表中的字段值做投影转换?
答:将字段值中的坐标构建为几何对象,然后对几何对象进行投影转换,转换完成后取出结果对象的坐标值,更新到原始字段中。

问:工具箱中的控件无法拖到窗体中。
答:这种情况可能是安装路径中包含有中文导致的,建议改成英文路径,重新注册即可。

问:简单数据集里面的几何对象如何实现,鼠标移动上去样式修改,移开还原?
答:简单数据集里面的几何对象不能单独修改某个的样式。可以通过查询取出鼠标所在位置的几何对象添加到跟踪图层上,再设置样式,移开的时候清空一下跟踪图层。或者复制到CAD复合数据集里面,进行单个几何对象样式设置。

问:修改布局图例title之后没有效果,怎么回事?
答:修改完成之后需要GeoLegend.Load 方法加载设置的内容,再LayoutElements.SetGeometry 方法覆盖原来的几何对象.

问:场景刷新时比较慢,能否优化刷新速度?
答:不需要对整个场景刷新,可单独对图层刷新(Layer3D.UpdateData 方法)。注意:(1)在以下情况需要调用Layer3D.UpdateData方法才能正确渲染更新后的数据:在修改GeoStyle3D的AltitudeMode属性时。(2)当三维数据集图层类对象(Layer3DDataset)中指向的数据集(Layer3DDataset.Dataset)有变动时,不需要调用Layer3D.UpdateData来进行刷新,系统会默认自动完成刷新操作。

问:对一个地图的栅格图层使用ColorTable属性设置颜色表,颜色个数小于32的时候,保存地图。SuperMap.Mapping.Map.ToXML()抛出外部组件异常的错误
答:这是因为颜色值跟默认的高程值的段数32段不对应,应使用ColorDictionary接口进行设置颜色表相关信息。ColorDictionary能够直接设置键值对,能有效方便的进行颜色表设置管理。

问:地图裁剪VectorClip.ClipDatasetVector这个方法是否支持多线程
答: 目前,SuperMap 并行计算支持栅格分析、水文分析、网络分析、拓扑预处理、叠加分析、空间查询分析功能,不支持空间分析模块下VectorClip类的ClipDatasetVector方法。

问:新建SQL数据库型数据源时,是否能选择数据库文件存放的位置?
答:暂时没有提供接口进行数据库文件存放位置的设置,可以通过SuperMap创建数据源后,到SQL Server中分离数据库,拷贝到其他文件目录后,再重新附加到数据库当中。

问:生成缓冲区的时候,半径单位设置的是米(bufferAnalystParam.RadiusUnit = BufferRadiusUnit.Meter),为什么缓冲区结果的半径很大?
答:用new新生成的Geometry几何对象做缓冲区的时候,使用方法BufferAnalystGeometry.CreateBuffer(),在非平面坐标系中必须填第三个参数(坐标系参数)否则缓冲结果半径很大,是以度为单位生成的。

问:添加地图导航控件到MapControl时总是报错,该如何添加?
答:首先构造一个对象:
MapNavigationControl mapNavigationControl1 = new MapNavigationControl();
然后关联MapControl控件:
mapNavigationControl1.MapControl =mapControl1;
最后设置此控件相对于其关联的MapControl控件的位置和锚定方式:
mapNavigationControl1.Location = new Point(0, 0);
mapNavigationControl1.Anchor = (AnchorStyles)(AnchorStyles.Left | AnchorStyles.Top);

问:调试程序时,如何处理弹出以下报错信息的情况:
当前的目标框架“.NETFramework,Version=v4.0,Profile=Client”未包含引用的程序集“SuperMap.UI.Controls”所依赖的“System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”。这会导致无法解析引用的程序集。若要解决此问题,请 (1) 更改此项目的目标框架,或者 (2) 从此项目中删除引用的程序集。
答:查看工程的项目属性,检查目标框架是不是为默认的.NET Framework 4 Client Profile ,由于被引用的SuperMap程序集的目标框架是.NET Framework 4,因此需要将该项目的目标框架修改成.NET Framework 4。

问:用组件代码获取面对象面积的时候,得到0.00000056485类似这样很小的值,但在桌面软件中查看,面对象的面积都大于1,是什么原因?
答:这是由于数据是经纬度坐标(如wgs84),并且在组件中是通过GeoRegion.Area获取的面对象面积,面积单位为度,因此获取的面积数值很小。
请改为获取对象对应的系统字段SmArea,通过Recordset.GetFieldValue 方法 (String),根据字段名SmArea获取对象面积。

问:SuperMap 7.1.0 是否可以用VC做开发?
答:可以。7.1.0 C++版组建和.Net、Java版组建不同,没有发布到官方网站。根据客户的需求,售前和研发商量出版本。

问:把iObject *.dll拷贝到工程里面,环境变量等都修改了,怎么还是找不到文件?
答:拷贝的时候不要只拷贝用到的*.dll,要把整个Bin包都拷贝进去。

问:为什么SQL查询的结果中没有地理字段信息,进行调试Recordset中的bounds都为0?
答:需要将Parameter参数中的HasGeometry设置True即可。

问:三维场景中,CAD数据集中点对象的栅格符号颜色显示为黑色,请问如何解决?
答:若CAD数据集需要在三维场景中显示,请在设置CAD数据集中点对象的栅格符号风格时,通过GeoStyle.LineColor属性(用于线状符号或点状符号的颜色),将点符号的前景色设置为白色即可。

问:经纬度坐标系计算出的线距离和数据集的单位相同,那怎么求出以米为单位的距离呢?
答:将线转换成点窜Point2Ds,通过方法Geometrist.ComputeGeodesicDistance求出距离,参数椭球体的长轴、椭球体的扁率在坐标系信息里面,可以获得。

问:使用python脚本做影像拼接入库失败是什么愿意?
答:使用python脚本有以下要求:运行的机器必须安装Python2.7;所使用的桌面或组件的bin包中必须包含“smu.pyd”文件;任何路径中不能有中文(包括影像文件名称)。

问:通过代码创建的圆,根据此对象进行空间查询时会提示SpatialQueryObject为null,圆对象存在为何还会报为空的错误呢?
答:空间查询的几何对象推荐是点、线、面这三类,如果是圆对象,请先将该圆通过GeoCircle.ConvertToRegion方法转为面对象后再进行空间查询。

问:网络数据集中Append方法为何失效?
答:网络数据集中不仅包括线数据集还包括节点数据集,故当前不支持网络数据集的Append方法,推荐重新构建网络数据集。

问:怎么获取地图中选中对象的记录集?
答:在MapControl控件中的Map属性中有一个FindSelection的方法,该方法返回一个Selection[]数组,然后用Selection进行访问,再用Selection的ToRecordset的方法获取其属性信息。

问:怎么提取面中心点?
答:首先获得面数据的recordset,然后遍历recordset中每一个对象,用GetGeometry()获得每个对象的集合对象,接着将GetGeometry()获得对象as为GeoRegion,用GeoRegion.Bounds.Center获取对象中心点。

问:在Visual Studio中使用iObjects .NET进行界面设计时,工具箱中的控件全部是灰色处于不可用状态,如何解决?
答:检查程序集目标框架是否为.NET Framework4.0以下,目前iObjects .NET要求程序集目标框架为.NET Framework4.0或以上,修改程序集目标框架即可。

问:如何获取地面上某点的高度,如果有地形数据,是否会受到地形拉伸倍数的影响?
答:可以使用Scene.GetAltitude方法获取地面上某点的海拔高度,不管地形拉伸倍数如何,返回的地形高度永远是实际的地形高度。

问:设置选择集风格不起作用是怎么回事?
答:设置选择集风格有两个关键点:1、Selection .IsDefaultStyleEnabled属性为false,该属性设置是否使用默认选择风格;2、Selection .SetStyleOptions()方法,设置自定义选择集高亮风格是否起作用。

问:Java组件程序运行时报错“Can’t load IA 32-bit .dll on a AMD 64-bit platform”是什么原因?
答:在64位eclipse和64位jdk环境下,需使用64位SuperMap Objects Java,若软件不匹配,会抛出此异常。

问:想将地图背景设成黑色,调用Map.setBackgroundStyle(GeoStyle style)和GeoStyle.setFillBackColor(java.awt.Color value)接口,其中的颜色不管传什么进去,结果地图都显示为淡蓝色。
答:系统默认的填充风格是实填充,应该用GeoStyle.setFillForeColor(java.awt.Color value)接口,设其前景色,否则前景色为系统默认的浅蓝色。背景色接口GeoStyle.setFillBackColor是在设置了有前后景区别的风格时才起作用,比如斜纹填充,此时设前景色为白色,背景色为黑色,可看到黑底白纹。

问:Objects Java支持跨平台,那么Windows上基于Objects Java的程序,能否直接部署到Linux系统上运行?
答:Objects Java针对不同系统平台有不同的开发包。应用想要跨平台运行,需要在Linux系统中,用相应的Objects Java包重新编译工程源代码。

问:windows系统中用java组件写好工程编辑在无界面的linux中运行报错:”java.lang.UnsatisfiedLinkError: /usr/local/supermap-iobeject/Bin/libWrapj.so: /usr/local/supermap-iobject/jre1.6/lib/amd64/libjawt.so: symbol awt_FreeDrawingSurface,version SUNWprivate_1.1 not defined in file libmawt.so with link time reference”。
答:如果用的是32位的iObjects java可以将SuperMapObjectsJavaHOME\binlibmawt.soJRE_HOME\lib\i386\headless目录中的libmawt.so文件;
如果用的是64位的iObjects java可以将SuperMapObjectsJavaHOME\binlibmawt.soJRE_HOME\lib\amd64\headless目录中的libmawt.so文件。

问:linux使用Objects Java 6R,运行程序,报错:no Base600 in java.library.path
答:两个可能的原因:1、没有设置Objects Java 6R的Bin的路径到环境变量中。2、以root用户拷贝并解压的Objects Java产品包,而以普通用户在eclipse调试程序,普通用户没有Java组件所有路径的访问权限导致报错。

问:SuperMap iObjects Java 6R中地图输出img,png格式正常,输出为pdf失败,怎么办?
答:SuperMap iObjects Java 6R支持地图输出pdf格式的图片,输出失败的原因是没有安装pdf打印机。

问:SuperMap Objects Java 7C中量算几何对象间的距离的结果单位是什么,在地理坐标系下量算怎么使得到的结果单位为米?
答:java组件中量算距离时有两种方法:(1)Geometrist.distance()返回结果的单位和地图的单位一致;(2)Geometrist.computeGeodesicDistance()返回结果的单位是米(即使地图的单位是度)。

问:如何查找在布局中选中的布局对象
答:先通过MapLayout.HitTest 方法 得到布局选择集,然后LayoutSelection.Item 属性 得到对应的id,通过LayoutElements.SeekID 方法 搜索指定 ID 号的布局元素,最后通过LayoutElements.GetGeometry 方法 得到对应的对象即可。

问:mapcontrol.Action = SuperMap.UI.Action.CreatePoint执行代码后action状态还是之前的状态,这是为什么?
答:当需要将地图状态设置为Create类型的时需要保证地图中至少有一个可编辑图层,否则action设置无效。

问:为什么导入数据集后使用ImportResult.GetSucceedDatasetNames(ImportSetting importSetting)获取数据集名称为空?
答:参数ImportSetting 对象必须是通过ImportResult.SucceedSettings 属性获取的 ImportSetting 对象。

问:iMobile for iOS的二维地图工程,工程编译没有错误,运行,设备上却漆黑一片,这是为什么?
答:请确认工程中是否添加是SuperMap.bundle捆绑包,在没有捆绑包的,地图控件会初始化失败,程序无法正常运行。
PS:SuperMap.bundle位于产品包安装目录SuperMap.framework的Resource中。

问:iOS Deployment Target为6.1时编译通过,然后改成7.0时,有一百多个链接错误,类似:
Apple Mach-O Linker Error
std::basic_string

0 0
原创粉丝点击