ArcGIS 9.3 For JavaScript API 学习笔记
一、遇到的问题描述:
在参考ArcGIS Resource Center中的Query task->Query map with buffer polygon中使用queryTask.execute(query)执行查询的时候,总是不会触发到dojo.connect(queryTask, "onComplete", function(fset)中的onComplete事件。
部分代码如下:
{
……
query.geometry = graphic.geometry;
queryTask.execute(query);
dojo.byId('messages').innerHTML = "<b>Executing Query with Result Buffer Geometry...</b>";
});
// +++++Listen for QueryTask executecomplete event+++++
dojo.connect(queryTask, "onComplete", function(fset) {
……
}
后来firebug中调试发现:query.geometry是个多边形(含有的point多)导致的web service的url的参数个数大于2048个,而我们这里采用的是get方式(最大的字符数为2048)不是post方式。所以我们需要一个proxy page做代理(即例子中的proxy.ashx)。
关于proxy.ashx可以参考:http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/arcgis/help/jshelp_start.htm中的working with ArcGIS Server Service ---> Using the proxy page相关.
这里大概介绍下使用方法(具体的参考上述ESRI官网的帮助):
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、在你客户端页面的js脚本初始话的时候,或者会导致get方式字符数>2048时。添加如下代码:
esri.config.defaults.io.proxyUrl = "proxy.ashx";(当然这个地址是根据实际在web项目中的位置决定的,也可能是" …/Proxy/proxy.ashx"等)
//可以设置她是不是用proxy page,如果字符数>2048时,默认的是false。
esri.config.defaults.io.alwaysUseProxy = true;
问题就解决了。
二、关于Geometry service相关:
1、9.3中共有七种服务,如下图。每创建一个服务之前,需要创建GIS resource(让人想起了 ADF OEM中的IGISResource),每种服务对应其GIS Resource:
Geometry service不需要任何资源,但是需要人工发布,发布后的地址如:http://esri-pc3973/ArcGIS/rest/services/Geometry/GeometryServer 。关于GP service可以参考安装的离线帮助。
转载于:https://www.cnblogs.com/upDOoGIS/archive/2010/01/07/1641231.html
ArcGIS 9.3 For JavaScript API 学习笔记相关推荐
- Crypto API 学习笔记一
标 题: [原创]Crypto API 学习笔记一 作 者: jdxyw 时 间: 2006-09-01,16:47 链 接: http://bbs.pediy.com/showthread.php? ...
- Javascript入门学习笔记
JS入门学习笔记目录 1.JS简介 2.组成部分 3.特点 4.作用 5.JS三种添加方式 6.变量 7.数据类型 8.检测数据类型 9.逗号运算符 10.算术运算符 11.关系运算符 12.逻辑运算 ...
- JavaScript闭包学习笔记
闭包(closure)是JavaScript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 下面就是我的学习笔记,对于JavaScript初学者应该是很有用的. 一.变量的作用域 要理解 ...
- SiKi学院 Unity中常用api学习笔记(001-014)
Api 应用程序编程接口 前言 笔记是看siki学院中<Unity中常用api>的学习笔记 课程地址: http://www.sikiedu.com/my/course/59 强烈推荐大 ...
- SiKi学院 Unity中常用api学习笔记(015-019)
Api 应用程序编程接口 前言 笔记是看siki学院中<Unity中常用api>的学习笔记 课程地址: http://www.sikiedu.com/my/course/59 强烈推荐大 ...
- Java Web--HTML、CSS、JavaScript详细学习笔记(内含丰富示例代码)
** Java Web–HTML.CSS.JavaScript学习笔记 ** HTML(Hyper Text Markup Language超文本标记语言):控制的是页面的内容,是由标签组成的语言,能 ...
- libvirt API学习笔记
为环境CentOS5.5 从官方网站上下载了文档 libvirt 0.7.5 Application Development Guide 由于CentOS自带libvirt版本为0.6.3的, ...
- 百度地图JavaScript API 学习之浏览器定位
浏览器定位示例 百度地图API官方的所有demo示例--请直戳这里 官方浏览器定位demo示例--请直戳这里 后来发现的问题,这里记录一下: 在使用百度地图JS API时,无意中发现谷歌浏览器的浏览器 ...
- Frida JavaScript API学习
文章目录 Runtime information Frida Script Process, Thread, Module and Memory Thread 线程 Thread.backtrace ...
- JavaScript Reflect 学习笔记
今天我们来学习JavaScript中的反射和ES6的Reflect对象. 什么是反射? 反射机制是指在程序运行期间能够获取自身的信息,比如一个对象能够在运行时就知道自己有哪些属性和方法. 在ES6之前 ...
最新文章
- 大数据,只是为了赚钱么?
- Oracle MD5加密
- 项目总结(采用领域驱动开发方式)
- sap模块介绍_SAP系统如何快速上手?
- java语法糖效率高吗_打包 Java将持续向“高糖”方向发展,你真的了解Java语法糖吗? _好机友...
- 微软和火眼又分别发现SolarWinds 供应链攻击的新后门
- mysql 视图没主键,mysql创建视图后打开提示没有主键,mysql视图
- C#中?与??的区别
- Word2016各种快捷键
- 网站关键词优化工具,网站关键词排名优化工具免费
- 小括号与花括号小括号与花括号
- LATEX公式下标短横线过长
- CreateCompatibleDC 解释
- The Accidental HFT Firm
- 动态规划解决最长公共子序列
- 【调剂经验】19年一战东南大学计算机专硕调剂蒙纳士,初复试经验调剂经验分享!...
- Android从零单排之免费短信验证
- DB2浮点数转换成字符串
- 工行开放平台接口签名详解
- 模拟声音实验室插件-Arturia Analog Lab v4.2.3.3897 WiN-MAC
热门文章
- 阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_12-MongoDb入门-基础概念...
- 阶段3 3.SpringMVC·_06.异常处理及拦截器_5 SpringMVC拦截器之编写controller
- 第490篇--Accessing the Domain info is denied in IIS.
- 阶段3 1.Mybatis_03.自定义Mybatis框架_3.自定义mybatis的编码-根据测试类中缺少的创建接口和类...
- Mysql基本语句(个人笔记)
- 旧板与IO板之间的连接
- 相克军_Oracle体系_随堂笔记011-事物
- vue echart甘特图
- BZOJ3145 [Feyat cup 1.5]Str 后缀树、启发式合并
- word中的总页数不包括封面、目录