当使用Query查询时,会用如下配置
var queryTask = new esri.tasks.QueryTask(applicationModelOneSearchPOIURL); var query = new esri.tasks.Query(); query.geometry = geometry; query.outSpatialReference = map.spatialReference; query.spatialRelationship = esri.tasks.Query.SPATIAL_REL_INTERSECTS; query.returnGeometry = true; queryTask.execute(query, ApplicationModelOneGetSearchData, ErrorCallBack);
一般使用框选的时候对query.geometry,我们一般会赋予一个Extent变量,但是当我们需要用一个比如圆这种多边形的的Polygon去查询时,就会出现esri.config.defaults.io.proxyUrl 尚未进行设置”错误
因为多边形(含有的point多)导致的web service的url的参数个数大于2048个,而我们这里采用的是get方式(最大的字符数为2048)不是post方式。所以我们需要一个proxy page做代理,具体参考http://blog.csdn.net/lz576825608/article/details/7989391
就是在在查询前加一句esri.config.defaults.io.proxyUrl = "proxy.ashx";然后去网上下载相关的文件,在proxy.ashx和proxy.config中添加相应的配置代码就行了。在proxy.config中配置代码为添加 <serverUrl url="http://myserver/ArcGIS/rest/services/POI/Shoping/MapServer/0"
matchAll="true"
token=""></serverUrl>
时间: 2024-10-29 03:31:19