ArcGIS API for javascript 空间查询 没有结果 解决

问题背景:

用ArcGIS API for javascript 空间查询时,通过简单的拉框,绘制多边形等简单几何要素之间叠加,相交空间分析这种查询方式通过

Query task->中使用queryTask.execute(query)执行查询的时候,触发到dojo.connect(queryTask, "onComplete", function(fset)中的onComplete事件。

结果可以出来。但是当几何要素复杂的时候,比如行政区于某个要素几何叠加,相交分析,此时行政区的Geometry多大几万个点,

API的Query Task的web service的url的参数个数大于2048个,而我们这里采用的是get方式(最大的字符数为2048)不是post方式。所以我们需要一个proxy page做代理(即例子中的proxy.ashx)。

解决方法如下:

    I、下载proxy.ashx文件(包含proxy.config)的zip压缩包,将上述两个包解压到你的web application的目录下.然后在程序中添加上它们两个.

    II、修改proxy.config配置文件:<serverUrls>节点下添加一个子节点<serverUrl >,设置属性url:如果你的web程序用到大于两个服务(下面"二、"说的七种服务)的话  url=http://你的IP地址/arcgis/rest/services/;如果是web程序用到一个服务的话:url=http://你的IP地址/arcgis/rest/services/MyMapService/MapServer 。如果你不是用本地的服务的话你可以不做修改(因为它里面已经有ESRI发布的相关服务的URL了).

   III、将proxy.ashx在IIS中发布。添加如下代码:

    esri.config.defaults.io.proxyUrl = "http://localhost/proxy.ashx";(当然这个地址是proxy.ashx发布的位置" …/Proxy/proxy.ashx"等)

    //可以设置她是不是用proxy page,如果字符数>2048时,默认的是false。

    esri.config.defaults.io.alwaysUseProxy = true;



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值