arcgis中的摸索

本文记录在使用arcgis 时遇到的一些问题及解决办法。

一.catalog里面为镶嵌数据集创建overview时报错。错误内容如下:

  • Error: 8004206f: Could not initialize the mosaic dataset's parallel processing engine.
  • Error: 80040213: Configuration RasterCommander.ImageServer can not be started.
  • Server Object instance creation failed on machine MIHA.
  • Image Server is not supported with the current license.
  •  
解决方法:菜单geoprocesssing ->environment 打开Environment Settings对话框,找到 Parallel Processing项.将 parallel processing factor 设置为0.重新运行创建overview,问题解决。另外网上有说可能是多在另外的arcmap里面打开了这个镶嵌数据集,测试把arcmap关闭,只打开一个catalog,没用,应该不是这个问题。
 
二.image server 通过rest服务添加栅格问题:
1.在对应的imageserver ->功能,中打开“编辑”功能,然后在 参数->属性->编辑 tab项里面一定要设置
动态图像工作空间:
 
服务工作区:

这两项。第一个是存储上传栅格的目录,如果没有设置服务里面是看不到上传(uploads)功能。第二个为工作空间目录,如果没有设置,调用addraster功能时直接报错“添加栅格失败 error code 500”

三.identifyTask,findTask,queryTask.

简单讲identity task,进行空间查询,一般在最顶层图层进行(id=0),

find task 进行属性查询,

query task 空间属性查询都可以。但只能在对应的子图层进行,比如想识别id=5的子图层中的要素,如果用query进行空间查询的话,就必须先获取id=5的子图层的url,所以在有多个图层中的识别就必须获取每个子图层的url,然后分别进行query,显然当子图层多的话就不方便了。

在arcgis_js_api 4.x中,

IdentifyTask is not supported if attempting to be used:

即不支持动态图层,所以在动态图层中click后浏览器提交的是query请求而不是identity请求

注意:动态图层:是指动态指定数据源或其他实时生成的图层。与3.x开发中我们用的DynamicLayer加载mapservice的动态图层可能有些区别。

四.arcgisserver 地图服务是否支持动态图层。mapservice 里面看Child Resources:Dynamic Layer 是否有这项,如果有的话就支持动态图层,否则就不支持,如果想用js.4.x的api中的sublayer去动态改变里面的render,popuptemplate,或者其他内容,可能会报以下错误。如果只是通过sublayer去引用,不动态改变里面的内容则不会报错。

MapServer doesn't support dynamic layers, which is required to be able to change the sublayer's order, rendering, labeling or source.

五.js4.x中将弹窗固定为在要素的正上方弹出。

popup在点击地图上的要素弹窗时会根据要素的位置确定弹窗的位置,比如所点击要素靠近浏览器右上角,则

弹窗会出现在要素的左下角,但当弹窗的窗体太大时,判断经常会出错,本该在要素下方的却出现在了要素上方。所以这边就想把他固定在要素正上方,然后在通过定位

调整地图的位置。要实现固定弹出这个功能,需修改api中的源码,其中(二维)涉及到Popup的源码有2处,一个是widgets里面的Popup.js.一个是在MapView里面。

其中Mapview里面的内容跟Popupjs里面的内容是一样的,是mapview的默认弹窗,所以如果您不需求新new Popup的话,只需要修改mapview 里面的代码即可。

1.找到函数_determineCurrentAlignment,这个是判断窗体位置的,直接在第一句加上 return “top-center”;

 

2.找到Popup的render函数,定位到w = !w && ("top-left" === q || "top-center" === q || "top-right" === q || "bottom-left" === e || "bottom-center" === e || "bottom-right" === e),

在这句前加上q="top-center";默认为正上方。之后弹窗就会永远出现在要素的正上方。

六.Arcgis Server10.2加sqlserver数据库动态图层时间类型的字段查询问题。通过指定图层(由arcsde创建,存储在sqlserver)和视图进行关联创建了一个动态图层,视图和图层中都有一个时间类型的字段,发现无法利用图层与表中的时间字段对要素进行过滤,利用其它字段又正常。在Child Resources:Dynamic Layer 的页面中查询报错“查询失败”。arcgis manager日志中查看报错:“无效的sql语句”。经测试,语句没有问题,因为如果不是动态图层,直接对图层进行查询是正常的。所以怀疑arcsde中有问题,最后只能放弃这个办法了。此外,利用动态图层还需要注意1个问题:1.所有图层或者表(视图)要在同一个工作空间,一开始是,本人的图层和视图是在2个不同的动态工作空间,所以,动态图层属性上显示不支持高级查询,按照帮助文档里面说的将视图移动到跟图层同一个工作空间后,动态图层属性显示支持高级查询,但结果还是无法进行查询。帮助文档并没有对于表和视图做特别说明,说只支持表,所以就默认视图和表是一样的。--20200904

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值