SuperMap iClient for JavaScript常见问题解答集锦 (二)

2024-02-25 11:08

本文主要是介绍SuperMap iClient for JavaScript常见问题解答集锦 (二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:朝阳


问:使用iClinet for JavaScript产品,如何在添加地物时,增加自己的属性字段。
答:首先需要在所编辑的数据集增加所需字段,然后在JS代码,EditFeaturesParameters.features 里面写入增加内容,如:
features = {
fieldNames:[“NEW_LABLE”],
fieldValues:[“测试字段”],
geometry:geometry
};
这样,添加地物的时候,就能把属性也增加到其中。

问:使用iclient for ios客户端时,在storyboard上绘制的控件都被RMMapView覆盖住了怎么办?
答:这是叠加subview的顺序导致的;在初始化RMMapview后-(void)loadview中调用[super loadview];[self.view insertSubview:mapView atIndex:0];

问:iClient for ios中如何在地图上绘制自定义要素线
答:利用RMPath进行叠加要素的绘制,RMPath *line=[RMPath alloc]initWithContents:MapView.Contents];[line moveToXY:Point1];[line addLineToXY:Point2];[line ClosePath];然后将构造好的RMPath添加在Mapview.Contents上,[MapView.contents.coverlay addSublayer:line];

问:iClient for javascript中使用SuperMap.Control.SelectFeature对VectorLayer上的Feature进行鼠标点选操作如何分别对click和mouseover事件作出不同的响应
答:SelectFeature中提供callback属性实现对不同鼠标事件设置不同的回调函数var cb = {over: function(Feature){//todo},click: function(Feature){//todo},SelectFeature.callbacks=cb;};在callbacks属性中注册的click、over事件会覆盖同时注册的onSelect事件

问:iClinet for JavaScript使用UTFGrid时,返回值为空,如何解决
答:1.添加map投影坐标如: projection: “EPSG:4326”
2.UTFGrid添加maxExtent值,其大小为地图范围bounds

问:iclient for javascript使用wmts做底图与rest图层叠加,rest图层会把wmts图层覆盖,如何解决
答:将rest图层的isBaselayer设置为false,useCanvas设置为false即可

问:地表层高度模式、绝对高度模式、距地相对高度模式中哪种高度模式性能最高?
答:绝对高度模式。

问:SuperMap iClient 7C for 3D访问iDeskpro 7C快速建模的数据发布的服务,模型贴图丢失,如何处理?
答:1、检查原始数据属性表中贴图路径,将“\”修改为“/”。
2、重新配置场景,生成场景缓存,并将贴图文件拷贝到相应位置(属性表中贴图的相对路径是相对于工作空间的路径)。
3、使用场景缓存重新发布服务。
4、建议贴图文件和工作空间放在同一文件夹下。

问:iClient for JavaScript中如何将一组点居中显示?
答:使用SuperMap.Geometry.Collection将这些点对象集合在一起,calculateBounds方法重新计算边界,再使用map.zoomToExtent()方法缩放到指定范围,重新定位中心点即可实现

问:在iClient for JavaScript中制作统计专题图,如何显示子标题?
答:在ThemeGraph参数里设置graphText(SuperMap.REST.ThemeGraphText)属性,可以控制子标题是否显现,文字显示格式以及文字风格。

问:iClient for JavaScript使用QueryByBoundsService,框选的时候,看不到框选的效果,却能查出结果?
答:检查SuperMap.Handler.Box的boxDivClassName参数值在style.css文件中存在

问:iClient for JavaScript如何获对几何对象,实现查询结果定位显示。
答:可将查询结果的feature,获取其bounds,例如:feature.geometry.getBounds();然后在通过map.zoomToExtent方法实现定位显示。

问:SuperMap iClient 7C for 3D能否实现将场景输出成图片?
答:使用outputSceneToFile方法实现,路径使用绝对路径,例如C:/test.png。

问:SuperMap iClient 7C for 3D安装插件过程中报“无法注册模块C:\SuperMap\SuperMap iClient 7C\SuperMap iClient 7C for 3D\npSuperMapRealspace.dll。HRESULT-2147220473。”,如何处理?
答:1、删除C盘目录下SuperMap文件夹。
2、重启电脑后再安装插件。

问:在SuperMap iClient for JavaScript客户端中使用modifyFeature控件,如何设置选中feature的style?
答:设置modifyFeature.selectFeature.selectStyle=style即可

问:在SuperMap iClient for 3D中,如何使用图标符号化三维几何点对象?
答:在图层的style3D中设置markerFile属性,获取或设置三维点几何对象图标的所在服务器路径。该属性只支持 bmp, png, jpg 图片格式的文件。

问:iClinet在进行服务端查询时,设置toIndex为-1,但是为什么只能返回1000条记录。
答:iServer做了限制,可以修改所发布服务提供者的config节点下,新增/修改queryExpectCount配置项,如: 2000
设置默认返回记录数。

问:调用map服务时不出图,查看获取的服务请求自动为512512大小,而自己的地图瓦片为256256的?
答:原因:tileSize默认值为512*512。
解决方法:设置tileSize=“256”即可正确出图

问:在SuperMap iClient for Javascript中如何代码控制鹰眼控件的显隐?
答:overviewmap.minimizeControl();最小化鹰眼控件overviewmap.maximizeControl();最大化鹰眼控件

问:SuperMap iClient 7C for 3D中通过layer3Ds.add()添加符号化的矢量图层,符号丢失,如何处理?
答:layer3Ds.add()方法添加图层,图层风格会丢失,建议使用scene.open()方法。

问:SuperMap iClient 7C for 3D中设置飞行模式无效,这是什么原因?
答:由于相机优化,flyingMode类已全部废弃,都默认为常规飞行模式。

问:在SuperMap iClient for 3D中,如何在场景中查找指定ID的Feature3D并且隐藏?
答:使用layer3D.findFeature3DByID()方法找到feature3D对象,设置对象的isVisible属性即可。

问:在SuperMap iClient for JavaScript客户端中,AnimatorVector图层使用迁徙数据的时候,怎么设置起始点和终点?
答:拥有相同具体物体的识别号featureid的数据,表示该物体在不同的时间的不同数据。设置相应的坐标即可确定起始点和终点。

问:SuperMap iClient 7C for Android中,ItemizedOverlay设置marker引用的drawable是否支持AnimationDrawable动画效果?
答:目前暂不支持。

问:iClinet for JavaScript使用GetFeaturesByGeometryService返回结果为什么最多只有20个
答:该查询默认返回索引号0-19的结果,需要将GetFeaturesByGeometryParameters中的toIndex设置成-1即能返回所有结果

问:SuperMap iClient for JavaScript客户端中,怎么修改popup框的样式
答:可以使用SuperMap.Popup里的方法来改变popup的背景颜色,边框样式以及透明度

问:在iClient for Javascript中给SuperMap.Feature.Vector设置了文本标签的style,为什么通过selectFeatrue控件点击无法响应鼠标事件
答:SuperMap.Feature.Vector的style属性中设置labelSelect=true即可响应鼠标事件,该属性默认为false

问:SuperMap iClient 7C for 3D中如何实现Geotext3D对象高度调节?
答:通过设置altitudeMode和bottomAltitude属性实现。
function addtextTest()
{
var point3d = new SuperMap.Web.Core.Point3D(108.9887305555556,34.187125,0);
var text = new SuperMap.Web.Core.TextPart3D(“测试点”,point3d);
var geotext = new SuperMap.Web.Core.GeoText3D([text]);
geotext.set_position(point3d);
var style=new SuperMap.Web.Core.Style3D();
style.set_bottomAltitude(50);
style.set_altitudeMode(SuperMap.Web.Realspace.AltitudeMode.ABSOLUTE);
var feature3d = new SuperMap.Web.Core.Feature3D();
feature3d.set_geometry(geotext);
feature3d.set_style3D(style);
trackingLayer3D.add(feature3d, ‘text’);
}

问:iClient for Android如何调用离线缓存?
答:1.可以使用iServer分布式切图功能,生成SMTiles格式缓存地图。
2.将缓存文件导入到Android SD卡的supermap/Mbtiles/目录下
3.代码中使用MBTilesLayerView.setMbtilesPath传入路径,如supermap/Mbtiles/xx.smtiles

问:SuperMap iClient for Android 中如何减小生成的离线缓存文件大小?
答:建议根据实际需求,减少切图比例尺级别或者设置切图的图片大小、格式。

问:在SuperMap iClient for JavaScript中,在图层加载完之后,手动修改了承载地图的DIV大小之后,地图不能浏览,如何解决
答:可调用map.updateSize()方法,来改变地图容器的大小。

问:在SuperMap iClient for Javascript中往map地图容器添加了两个SuperMap.Layer.TiledDynamicRESTLayer图层为什么只显示了一个
答:设置map.allOverlays=true,将后添加的图层作为叠加层添加在地图容器中

问:SuperMap iClient for 3D客户端是否支持三维通视分析?
答:不支持。

问:SuperMap iClient for JavaScript客户端中使用WMTS图层,如果不想要其中几个缩放级别,该如何设置
答:将不想要的resolutions数组中的分辨率和对应的matrixIds中的identifier去掉即可

问:iClient for flash如何给wms图层设置透明度?
答:可以给wms图层设置alpha属性,其值为0-1,0表述完全透明,1表示不透明,默认alpha属性为1.

问:在SuperMap iClient for javascript中如何给feature添加文字标签
答:在feature的style属性中设置label参数即可添加标签

问:在SuperMap iClient for JavaScript中如何自定义地图鼠标的样式
答:通过修改地图容器的css来更改;map.div.style.cursor=“url(theme/images/marker.png),auto”;在ie下直接赋值自定义图片或cur文件的地址

问:SuperMap iClient for 3D中如何实现基于地形的开挖?
答:将挖方区域几何对象的高度模式设置为地表层高度模式即可。

问:Android客户端加载地图显示为空白,Log日志提示:“第 1 次初始化地图参数失败,错误消息为:INITIALIZED_FAILED:Connection to http://localhost:8090 refused”,如何解决?
答:这个是因为所引用的地图服务的地址中包含localhost导致的,只需要将localhost更改为地图服务器的IP地址即可解决。

问:Android客户端加载地图时显示为空白,Log日志提示:LayerView初始化地图状态失败,详细堆栈:Connection to http://192.168.169.14:8090 refused
LayView:World 第 1 次初始化地图参数失败,错误消息为:INITIALIZED_FAILED:Connection to http://192.168.169.14:8090 refused,如何解决?

答:可能是Android权限受限导致的;请检查、


这三个权限是否都赋予了

问:如何给Ajax的Feature添加事件监听
答:可以使用feature.function(feature,onClick){//todo}来增加事件监听,当必须是最新版本的iServer6R自带的ajax才支持。具体版本为iServer6R 2012sp1版本。

问:使用SuperMap iClient 6R for Ajax如何实现关联查询?
答:设置FilterParameter的joinItems属性或者linkItems即可,示例代码如下:
//FilterParameter 必设 name(查询地图图层名),当 SQL查询时 attributeFilter(SQL条件语句)也为必设
var queryParam = new SuperMap.Web.iServerJava6R.FilterParameter();
queryParam.name = “Capitals@World”;
queryParam.attributeFilter = “New_Table.smid > 0”

//JoinItem参数设置
var joinItem= new SuperMap.Web.iServerJava6R.JoinItem();
joinItem.foreignTableName = “New_Table”;
joinItem.joinFilter = “Capitals.SMID = New_Table.SMID”;
joinItem.joinType = SuperMap.Web.iServerJava6R.JoinType.INNERJOIN;
queryParam.joinItems = [joinItem];

var queryParams = [queryParam];

//QueryBySQLParameters 参数必设 queryParams
var queryBySQLParameters = new SuperMap.Web.iServerJava6R.QueryBySQLParameters();
queryBySQLParameters.queryParams = queryParams;

问:使用SuperMap iClient 6R for Ajax做拉框查询时,缩小地图后,查询出的结果(添加到marker图层)跑到矩形框的外面,放大后又回到里面,这是什么原因?
答:查看创建Marker时是否设置了offsetX、offsetY属性,没有设置这两个属性,会造成Marker偏移。

问:使用SuperMap iClient 6R for Ajax制作专题图返回白图,这是怎么回事?
答:如果地图比例尺较小,专题图会显示不出来,可以设置ThemeGraph.graphSizeFixed=true,使专题图不随地图缩放。

问:使用开发工具Visual Studio开发的SuperMap iClient 6R for Ajax应用,用IE浏览器浏览,绘制图形(点、线、面)时报错,而用其他浏览器时绘制图形正常,这是什么原因?
答:这是因为在 IE 浏览器中绘制图形是在 VMLLayer 上添加矢量要素的。使用 VMLLayer,需使用不带任何 HTML 标准的 HTML 页面。使用 Visual Studio、Dreamweaver 、Eclipse等开发工具新建一个 HTML 页面时,在页面头部会引入一些 HTML 标准,这些标准可能会影响 VMLLayer 的使用,建议删除这些标准。如Visual Studio在页面头部会引入的HTML标准为:

问:SuperMap iClient for Ajax,浏览设置了比例尺及导航面板引用图片路径,但是不出比例尺及导航面板图片。当鼠标放到所期望显示的地方,有提示,可使用其功能。
答:修改SuperMap.Web.js,将…/…/替换成相对程序,调用图片的路径。如默认是…/…/image ,如果是程序和image同级 则 将…/…/image修改成image即可。

问:使用SuperMap iClient 6R for Ajax如何关联外表做专题图?
答:设置ThemeParameters的joinItems属性即可,示例代码如下:
//设置关联信息
var joinItem = new SuperMap.Web.iServerJava6R.JoinItem();
joinItem.foreignTableName = “New_Tabular”;
joinItem.joinFilter = “New_Region.SMID = New_Tabular.SMID”;
joinItem.joinType = SuperMap.Web.iServerJava6R.JoinType.INNERJOIN;

//专题图参数对象
var themeParameters = new SuperMap.Web.iServerJava6R.ThemeParameters();
themeParameters.themes = [theme];
themeParameters.dataSourceName = [“ORCL”];
themeParameters.datasetName = [“New_Region”];
themeParameters.joinItems = [joinItem];

问:iClient for Ajax客户端如何实现圆选查询?
答:可以先通过绘制圆操作DrawCircle得到圆心(DrawCircleArgs.geometry.center)和半径(DrawCircleArgs.geometry.geoRadius),然后利用距离查询服务QueryByDistanceService,设置相应距离查询参数QueryByDistanceParameters即可。

问:iClient for Ajax客户端如何实现地图打印?
答:iClient for Ajax客户端没有提供打印的接口,可以调用JavaScript中的打印功能。

问:怎么修改指北针和缩放条图片的引用路径?
答:有两种方法修改:
第一种,初始化时指定图片路径,参数为JSON 对象。
Compass的参数格式如下:
{imageSrc:".png",pos:SuperMap.Web.Core.Point,id:String}。
ZoomSlider的参数格式如下:{imageSrc:{sliderPlusImageSrc:"
.png", sliderMinusImageSrc:".png",levelImageSrc:".png",sliderThumbImageSrc:".png"},pos:SuperMap.Web.Core.Point,id:String}。
imageSrc 为控件使用的图片路径(相对于页面),默认值为相对路径 ”…/…/images/controls“文件夹下的图片;pos 为控件显示位置,SuperMap.Web.Core.Point 对象类型; id为控件的唯一标识符,String类型,必设参数;
第二种,调用setImgLocation方法。如:
compass.setImgLocation("
.png");//参数类型为String,指北针引用图片的位置
var imageslocation = new Object();
imageslocation.sliderPlusImageSrc = “.png";
imageslocation.sliderMinusImageSrc = "
.png”;
imageslocation.levelImageSrc = “.png";
imageslocation.sliderThumbImageSrc = "
.png”;
zoomSlider.setImgLocation(imageslocation);//参数类型为jsonObject,就是一个对象

问:范围分段专题图,如果专题值为空时,风格怎样设置?
答:如果专题值为空,可以添加一个专题图子项ThemeRangeItem,不设置该子项的分段起始值start,设置终止值end为0,然后风格style设置成所需的风格即可。

问:没有引用include.js,自己手动引入的js,为什么不出图?
答:因为引用的顺序有可能不同,正确的顺序是:MicrosoftAjax.js,SuperMap.Web.js,SuperMap.Web.iServerJava6R.js

问:ajax 专题图出图失败,但是进回调函数了
答:出图白图,而且进回调函数,说明生成成功了,可能由于专题图大小设置问题,大小是根据地图单位的,如果是平面或者墨卡托那种 那么大小设置大些如:2000

这篇关于SuperMap iClient for JavaScript常见问题解答集锦 (二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/745280

相关文章

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Springboot @Autowired和@Resource的区别解析

《Springboot@Autowired和@Resource的区别解析》@Resource是JDK提供的注解,只是Spring在实现上提供了这个注解的功能支持,本文给大家介绍Springboot@... 目录【一】定义【1】@Autowired【2】@Resource【二】区别【1】包含的属性不同【2】@

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

Java枚举类实现Key-Value映射的多种实现方式

《Java枚举类实现Key-Value映射的多种实现方式》在Java开发中,枚举(Enum)是一种特殊的类,本文将详细介绍Java枚举类实现key-value映射的多种方式,有需要的小伙伴可以根据需要... 目录前言一、基础实现方式1.1 为枚举添加属性和构造方法二、http://www.cppcns.co

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Java中的String.valueOf()和toString()方法区别小结

《Java中的String.valueOf()和toString()方法区别小结》字符串操作是开发者日常编程任务中不可或缺的一部分,转换为字符串是一种常见需求,其中最常见的就是String.value... 目录String.valueOf()方法方法定义方法实现使用示例使用场景toString()方法方法

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("