第04章 Arcgis JS Api基础
第1讲 无
第2讲 重要API类
主讲内容
- Vs智能提示配置
- 地图类Map
- 图层类型
- Geometry
- Symbol
- Graphic
- Render
- FeatureSet
1. VS智能提示配置
- arcgis_js_v39_sdk\arcgis_js_api\sdk\jshelp\jsapi_vsdoc12_v38.js
2. 地图类Map
- Map 是承载图层的容器,主要用于呈现地图服务、影像服务,此外还可以展示 WMS 服务等,一个图层只有被添加到 Map 中,才能被显示出来
- 例如:var myMap = new esri.Map(“Div”);
3. 图层类型
- 图层是承载服务的载体(GraphicsLayer 除外),ArcGIS for Server 将 GIS 资源作为服务发布出来,要想在浏览器端看到这些服务,就必须将这些服务和图层关联起来,不同的服务对应不同的图层类型,下表列出了这些服务和 ArcGIS API for JavaScript 中图层的对应关系。
3.1. 图层和服务的对应关系
图层 | 服务 |
---|---|
ArcGISDynamicMapServiceLayer | ArcGIS for Server 发布的 2D 动态地图服务 |
ArcGISImageServiceLayer | ArcGIS for Server 发布的影像地图服务 |
GraphicsLayer | 客户端图层不对应 ArcGIS for Server 发布的服务 |
FeatureLayer | ArcGIS for Server 发布的要素服务或者地图服务中的图层 |
WMSLayer | 调用 OGC(Open Geospatial Consortium)矢量地图服务 |
WMTSLayer | OGC(Open Geospatial Consortium)地图切片服务 |
KMLLayer | Keyhole Markup Language 描述和保存地理信息文件 |
VETiledLayer | 微软的 Bing 地图服务 |
GeoRssLayer | 支持 GeoRss 服务 |
3.2 地图和图层的关系
地图是有多个图层组成的,因此关系包含与被包含的关系:
例如:
var myMap = new esri.Map(“arcgisDiv”);
var myTiledMapServiceLayer = new esri.layers.ArcGISTiledMapServiceLayer(“http://cache1.arcgisonline.cn/arcgis/rest/services/ChinaOnlineCommunity/MapServer");
myMap.addLayer(myTiledMapServiceLayer);
4. Geometry
- 几何对象用于表示对象的显示型式,在ArcGIS API for JavaScript 中 Geometry大体上可以分为下面几类:点、多点、线、矩形、多边和ScreenPoint。其中 ScreenPoint对象是最新版本增加的,是以像素的方式表示的点,而点、多点、线、矩形、多边形都是继承Geometry
4.1 Geometry 对象结构
4.2 Geometry 类型名
- Geometry 抽象类,定义几何体的图形。
- MapPoint 点对象
- MultiPoint 多点对象。
- Polyline 多义线对象,由路径(Path)组合而成。
- Envelope 矩形对象,长宽方向分别平行于 X、Y 轴。
- Polygon 多边形对象,由环(Ring)组合而成。
- ScreenPoint 用像素来表示点的 X,Y 坐标,相对于屏幕的左上角。
5. Symbol
- Symbol 定义了如何在GraphicLayer上显示点,线,面和文本,符号定义了几何对象的所有非地理特征方面的外观,包括图形的颜色,边框线宽度,透明度等等。ArcGIS API for JavaScript 包含了很多符号类,每个类都允许你使用唯一的方式制定一种符号。每种符号都特定于一种类型(点、线,面和文本)。
5.1 几何类型和对应的符号
- 点 SimpleMarkerSymbol, PictureMarkerSymbol
- 线 SimpleLineSymbol, CartographicLineSymbol
- 面 SimpleFillSymbol, PictureFillSymbol
- 文本 TextSymbol, Font
5.2 符号集成关系结构图
6. Graphic
- Geometry 定义了对象的形状,Symbol 定义了图形是如何显示的,Graphic 可以包含一些属性信息,并且在 Javascript 中还可以使用 infoTemplate(一个 InfoTemplate 包含标题和内容模板字符串,该内容模板字符串用于将 Graphic 的属性转换成 HTML 的表达式)定义如何对属性信息进行显示,最终的 Graphic 则是被添加到 GraphicsLayer 中,GraphicsLayer 允许对 Graphics 进行事件监听,对于 Graphic 的描述可以用一个数学表达式来表示:
- Graphic= Geometry+Attribute+Symbol+infoTemplate
7. Render(专题渲染)
- 渲染器定义了一种或多种符号以应用于一个GraphicsLayer。每个 Graphic的符号所使用的符号取决于该 Graphic的属性值。渲染器指定了属性值与符号之间的对应关系。
8. FeatureSet
- FeauteSet 是要素类的轻量级表示,相当于地理数据库中的一个要素类,是Feature(要素)的集合,FeatureSet中的每个Feature可能包含Geometry、属性、符号、和一个InfoTemplate。如果 FeatureSet不包含Geometry,只包含属性,那么FeatureSet可以看作一个表,其中每个 Feature是一个行对象。FeatureSet是我们在利用ArcGIS API for Javacript和ArcGIS for Server 进行数据通讯的一个非常重要的对象,当使用查询,地理处理和路径分析的时候,FeatureSet常常作为这些分析的功能的输入和输出参数。
第3讲 地图操作
主讲内容
- Map参数详解
- Map主要方法
- Map主要属性
- Map的主要事件
- 实例讲解
1. Map参数详解
- esri.Map(divId, options)
- 构造方法在创建一个 map 对象必须传入一个 div 元素作为其容器,此外这个构造方法还包括一系列可选的参数用来描述地图的相关行为,下面为常用的可选参数:
1.1 Map可选参数
- Extent 如果设置了该选项,一旦这个选项的投影被设置,那么所有的图层都在定义的投影中绘制
- Logo 是否显示 esri 的 logo
- wrapAround180 是否连续移动地图,即通过日期变更线,好似对地图进行横向旋转 360 度.
- lods 设置地图的初始比例级别
- maxScale 设置地图的最大可视比例尺
- sliderStyle 设置 slider 的样式,值为 large 或者 small
2. Map主要方法
- toScreen/toMap 地图不屏幕之间的坐标转换。
- setScale 设置地图到指定的比例尺
- setZoom 放缩到指定的层级
- setLevel 放缩到指定的层级
- setExtend 设置地图显示范围,常用于进行地图的平移操作
- disablePan 禁止使用鼠标平移地图
- removeAllLayers 移除所有图层
- removeAllLayers 移除所有图层
- addLayer 添加图层
- getBasemap 获取底图
- getLayer 根据 id 获取图层
- getLayersVisibleAtScaleRange 获取某一比例尺下的可见图层(图层数组)
- getScale 获取当前的比例尺
- hidePanArrows 隐藏移动时候的鼠标箭头
- hideZoomSlider 隐藏放大滑块
- panRight 向右平移
- panUp 向北平移
- removeAllLayers 移除所有图层
- removeLayer 移除指定图层
- reorderLayer 改变图层的顺序
- reposition 复位地图,该方法在地图的 DIV 被复位的时候要用到
- setTimeExtent 设置地图的时间范围
- setTimeSlider 设置和地图关联的时间滑块
- setZoom 设置放大级别
- showPanArrows 显示平移箭头
- showZoomSlider 显示放大滑块
3. Map主要属性
- autoResize 如果浏览器窗口或 ContentPane 填充的地图控件的小部件的大小调整了,地图是否自动调整大小。
- attribution 地图属性
- fadeOnZoom 在地图进行缩放时,是否启用淡入淡出的效果
- extent 地图外包矩形的范围,即四个角点坐标范围
- force3DTransforms 是否启用 CSS3 转换
- infoWindow 在地图上显示消息框
- isClickRecenter 按住 Shift 键,在地图上单击鼠标左键,是否将该点设为地图中心
- isDoubleClickZoom 双击鼠标左键,是否进行放大地图操作
- isPan 设置地图是否可以用鼠标移动
- spatialReference 获取地图的空间参考信息
- isKeyboardNavigation 是否用键盘上的“+”和“-”导航地图
- isRubberBandZoom 是否启用橡皮筋缩放模式
- isScrollWheelZoom 是否允许滚轮进行缩放操作
- isShiftDoubleClickZoom 按住 Shift 键,在地图上双击鼠标左键,是否将该点设为地图中心的同时进行缩放操作
- geographicExtent 地图的地理坐标范围(只支持 Web 墨卡托)
- layerIds 地图已加载的图层 ID 列表
- loaded 地图控件是否已加载完成
- graphics 获取地图的 GraphicsLayer
- position 地图左上角坐标
- root 容纳图层、消息框等的容器的 DOM 节点
- showAttribution 是否允许显示地图属性
- snappingManager 捕捉管理器
- isZoomSlider 设置或者获取地图的放大滑块状态(true 和 false)
- layerIds 获取地图的图层的 ID(数组)
- navigationMode 设置或者获取地图的导航模式
- timeExtent 地图的时间范围
4. Map主要事件
- onExtentChange 地图范围改变事件。
- onBasemapChange 地图的底图发生变化
- onLoad 当第一个图层或者底图被添加到 Map 中的时候发生
- onClick 在地图上发生单击的时候发生
- onLayerAdd 当图层添加的时候发生
- onLayersAddResult 当所有图层都添加结束后发生,使用 map.addLayers 方法之后
- onLayersRemoved 当所有图层都移除后发生
- onLoad 当第一个图层或者底图加载成功后发生
- onMouseDown 当鼠标在地图上单击的时候发生
- onMouseMove 当鼠标在地图上移动的时候发生(在这个事件中经常用来获取 X,Y坐标).
- onMouseOut 当鼠标移出地图的时候发生
第4讲 地图常用工具
主讲内容
- 放大
- 缩小
- 左移
- 右移
- 上移
- 下移
- 全屏
- 拖动
- 鹰眼
放大
dojo.require(“esri.toolbars.navigation”);
navToolbar.activate(esri.toolbars.Navigation.ZOOM_IN)
缩小
navToolbar.activate(esri.toolbars.Navigation.ZOOM_OUT);
左移
myMap.panLeft
右移
myMap.panRight();
上移
myMap.panUp
下移
myMap.panDown
全屏
navToolbar.zoomToFullExtent()
拖动
navToolbar.activate(esri.toolbars.Navigation.PAN)
鹰眼
function OverviewMap() {
var over = {
map: Map,
attachTo: "bottom-right",
color: "#D84E13",
expandFactor:2,
baseLayer:new esri.layers.ArcGISTiledMapServiceLayer(MapServer)
};
var MapViewer = new esri.dijit.OverviewMap(over, dojo.byId("OverViewDiv"));
MapViewer.startup();
}
第5讲 图层控制
第6讲 常用控件(1)
主讲内容
- Scalebar(比例尺)
- Bookmark(书签)
- InfoWindow(信息窗口)
1. Scalebar(标尺工具)
- Scalebar 用于在地图上或者一个指定的 HTML 节点中显示地图的比例尺信息。
2. Bookmark书签
- 书签控件用于管理用户创建的地图书签提供新建书签、定位到书签和删除书签的功能。
3. InfoWindow
- InfoWindow 控件是一个带有小尾巴的窗口,小尾巴指向一个位置或感兴趣的要素,其本质上就是一个 HTML 弹出框,InfoWindow 经常包括 Graphic 的属性信息。如果 Graphic 定义了InfoTemplate,则点击 Graphic 显示 InfoTemplate 所定义的,每个地图仅有一个 InfoWindow,无构造函数。
- 构造方法:无,通过 Map.infoWindow 获取或设置
第7讲 常用控件(2)
主讲内容
- Navigation导航
- Draw绘图
- Legend图例
1. Navigation导航
- 构造方法: esri.toolbars.Navigation(map)
- 创建导航对象,传入一个 map 对象作为参数,无可选参数
2. Draw绘图
- 在地图上进行绘图操作,主要是借助于 Toolbar 上的 Draw(绘图)工具,绘图工具支持几何对象的创建
- new Draw(map, options?)
3. Legend图例
- Legend 控件用于动态显示全部或者部分图层的标签和符号信息。
- new Legend(params, srcNodeRef)
第8讲 数据查询IdentifyTask(1)
主讲内容
- IdentifyTask
1. IdentifyTask
- IdentifyTask是在某个地图服务中进行空间查询,IdentifyTask以IdentifyParameters对象作为参数,能查询同一个地图服务的一个或者多个图层,IdentifyTask仅仅用于空间信息查询。
1.1 IdentifyTask构造函数
- 构造函数: new IdentifyTask(url, options?)
- Url:<服务地址>
options?:可选参数
gdbVersion:指定要显示geodatabase版本
Geodatabase是一种采用标准关系数据库技术来表现地理信息的数据模型
1.2 IdentifyTask 方法
- execute(identifyParameters, callback?, errback?)
- 发送一个请求到ArcGIS其他地图服务资源识别特性基于theIdentifyParameters identifyParameters中指定的参数。
1.3 Execute 参数说明
identifyParameters
指定的标准用来识别特性。空间信息化标准
Callback 函数调用方法时完成,回调函数
Errback:错误返回函数
1.4 IdentifyTask属性
url
URL的ArcGIS Server REST资源代表了地图服务。
1.5 IdentifyTask事件
- Complete:完成时间,当完成后执行
- Error:发生错误的时候执行
1.6 IdentifyParameters
- IdentifyTask的参数对象,指定一些参数,来设置查询的标准特性
1.7 IdentifyParameters常量
- LAYER_OPTION_ALL:识别所有的图层,包含隐藏图层
- LAYER_OPTION_TOP:只有最顶层可见层标识。
- LAYER_OPTION_VISIBLE:所有显示图层
1.8 IdentifyParameters属性
- DynamicLayerInfos:动态图层信息数组用来改变层排序或重新定义映射
- Geometry:在确定用于选择的几何特性。
- Height:当前正在查看地图的像素高度。
- LayerDefinitions:一系列层定义表达式,允许你过滤个别层的特性。
- LayerIds:层执行确认操作。
- LayerOption:指定哪写层可以使用。
- LayerTimeOptions:对象数组,允许您定义时间选项指定的层
- MapExtent:程度或当前正在查看地图的边界框。
- MaxAllowableOffset:返回的最大允许抵消用于泛化几何图形识别操作。
- ReturnGeometry:是否返回几何对象
- SpatialReference:输入和输出的空间引用几何图形以及mapExtent。
- TimeExtent:指定时间范围内使用的识别任务。
- Tolerance:从指定的几何距离屏幕像素内的执行标识。
- Width:当前正在查看地图的宽度(以像素为单位)。
第9讲 数据查询QueryTask(2)
主讲内容
- QueryTask
- IdentifyTask与QueryTask区别
- Query
1. QueryTask
- QueryTask 是一个进行空间和属性查询的功能类,可以在某个地图服务的某个子图层内进行查询
- QueryTask 执行需要两个先决条件:一个是需要查询的图层 URL、一个是进行查询的过滤条件. QueryTask 以 Query 为执行参数,空间查询和属性查询的设置都是在 Query 对象上进行,QueryTask 的过滤条件除了属性过滤,同时还支持空间过滤.
- 构造函数:new QueryTask(url, options?)
1.1 QueryTask属性
- url:要查询服务的路径
1.2 QueryTask 主要方法
- execute(parameters, callback?, errback?)执行查询一个服务层
- executeForCount(query, callback?, errback?):查询统计,返回数量
2. IdentifyTask与QueryTask区别
- IdentifyTask一般用于点查询
- QueryTask用于各种查询
3. Query
- Query是QueryTask查询参数对象
3.1 Query主要属性
- Distance:输入的缓冲区范围
- Geometry:用于查询几何范围
- objectIds:想要查询的图层编号
- orderByFields:排序字段
- outFields:返回字段
- returnGeometry:是否返回几何对象
- Where:查询条件
- Text:where使用Like
- multipatchOption:参数支持查询功能服务的数据源featureclass
第10讲 测量工具
主讲内容
- Measurement
1. Measurement
- 测量小部件:提供了工具计算当前位置(位置)和测量距离(测量距离)和地区(测量区)
- 构造函数:new Measurement(params, srcNodeRef)
1.1 Params参数
- defaultAreaUnit:默认面积单位
- defaultLengthUnit:默认长度单位
- lineSymbol:线的样式
- Map:默认地图
- pointSymbol:点样式
1.2 方法
- clearResult() 删除图形和测量结果。
- destroy() 破坏测量部件。
- getTool() 返回一个对象有两个属性:工具和单位的名字。(3.11)
- getUnit() 返回当前活跃的工具的计量单位。(3.11)
- hide() 隐藏部件
- hideTool(toolName) 隐藏指定工具
- measure(geometry) 调用的测量功能部件创建的几何。(3.11)
- setTool(toolName, activate) 激活或取消激活工具。
- show() 显示部件
- showTool(toolName) 显示工具
- startup() 完成测量部件的创建。
1.3 事件(3.11)
Measure
描述:没有单击时候的事件
measure-end
描述:测量完成后执行事件
measure-start
描述:测量开始的时候
tool-change
描述:工具改变的时候
unit-change
描述:单位发生变化的时候
第11讲 数据查询FindTask(3)
主讲内容
- FindTask
- FindParameters
1. FindTask
FindTask 是在某个地图服务中进行属性查询的功能类,FindTask 以 FindParameters 对象作为参数,能查询同一个地图服务的一个或者多个图层,并且可以在多个字段中进行查询,FindTask 仅仅用于属性信息的查询,在 FindTask 执行结束后,可以从其返回结果中获取查询的对象,所在图层和字段。
构造函数:
new esri.tasks.FindTask(url,options?)
1.1 FindTask属性
- url 服务地址
1.2 FindTask方法
- execute(findParameters,callback?,errback?)
2. FindParameters
FindTask的查询参数
构造函数:
new esri.tasks.FindParameters()
2.1 findParameters属性
- Contains:搜索匹配的文本信息
- dynamicLayerInfos:改变图层排序的数组
- layerDefinitions:层定义表达式,过滤层的属性,如:年龄>20
- layerIds层编号数组
- maxAllowableOffset:对查找操作返回的几何图形进行,最大泛化操作。
- outSpatialReference输出几何图形的空间参考。
- returnGeometry是否返回几何图形
- searchFields你要搜索返回显示的字段
- searchText:你要搜索的文本,针对于searchFields
第12讲 时间滑块控件
主讲内容
- timeSlider
- timeExtent
1. TimeSlider
位置:esri/dijit/TimeSlider
作用:用于在 Web 端对时态感知图层提供支持
构造函数:
new esri.dijit.TimeSlider(params,srcNodeRef)
1.1 TimeSlider属性
- Loop 是否循环执行
- Playing 是否正在打开
- thumbCount指针计数
- thumbMovingRate 指针移动比例
- timeStops一个数组表示停止的日期
1.2 TimeSlider方法
- createTimeStopsByCount(timeExtent,count?)输入时间范围,根据指定时间数量执行
- timeExtent:时间范围
- Count:输入数量
createTimeStopsByTimeInterval(timeExtent,timeInterval?,timeIntervalUnits?)
创建一个为每个指定的间隔时间停止,即。(周、月、日)
timeExtent:时间范围
timeInterval:时间间隔的长度
timeIntervalUnits:时间间隔单位
- getCurrentTimeExtent() 获取当前时间范围时间滑块
- next() 移到下一个时间
- pause() 暂停时间滑块
- play() 开始播放
- previous() 移动到前一个时间步
- setLabels(labels) 指定一个字符串数组作为标签。.3
- setLoop(loop) 决定是否循环。
- setThumbCount(thumbCount) 设置指针数量
- setThumbIndexes(indexes) 两个整数数组,第一个值决定,指针开始点
- setThumbMovingRate(thumbMovingRate) 设置变化速率,速度
- setTickCount(count) 指定数量显示在时间滑块
- setTimeStops(timeStops) 设置停止时间
1.3 TimeSlider事件
- time-extent-change事件发生变化的时候
2. TimeExtent
- 时间范围
- new esri.TimeExtent(startTime,endTime)
- 事件范围构造函数
第13讲 数据查询ImageServiceTask(4)
主讲内容
- ImageServiceIdentifyTask
- ImageServiceIdentifyParameters
- ImageServiceIdentifyResult
1. ImageServiceIdentifyTask
ImageServiceIdentifyTask 与 IdentifyTask 类似,但只能用于识别影像服务数据。
构造函数
new ImageServiceIdentifyTask(url)
方法
execute(params,callback?,errback?)
2. ImageServiceIdentifyParameters
ImageServiceIdentifyTask的查询参数
构造函数
new esri.layers.ImageServiceParameters()
2.1 ImageServiceIdentifyParameters属性
- Extent 输出图片的范围
- format 地图图像格式
- height 寻求单层图像像素的高度
- interpolation 当前的插值法
- mosaicRule 指定了镶嵌规则,在图像上定义扫描线
- renderingRule 呈现规则
.
- timeExtent 映像的时间范围
- width 请求的图像在像素宽度
3. ImageServiceIdentifyResult
- ImageServiceIdentifyTask返回结果
3.1 ImageServiceIdentifyResult属性
- catalogItems 获取返回结果的目录项,是一个 FeatureSet 。
- catalogItemVisibilities 获取目彔顷的可见性(镶嵌数据集才可以使用该属性)
- location 获取点击的位置。
- name 获取名称。
- objectID 获取对象的 ID。
- properties 获取属性。
- value 获取值
第14讲 esri小部件BasemapToggle
主讲内容
BasemapToggle
构造函数
new esri.dijit.BasemapToggle(params,srcNodeRef) 实现地图服务之间的切换
1. BasemapToggle
1.1 属性
- basemap二级基础图切换
- basemaps对象包含标签和每个基础图图像的url
- loaded小部件是否已经加载
- map地图对象
- theme小部件样式
- visible默认情况下是否可见
1.2 方法
- destroy()破坏小部件
- hide()隐藏小部件
show()显示小部件
startup()完成创建部件
- toggle()切换到下一个基础图
1.3 事件
- Load小部件被加载的时候
- Toggle当触发的时候时切换方法
第15讲 esri小部件BasemapGallery
主讲内容
- BasemapGallery
- Basemap
1. BasemapGallery
BasemapGallery
构造函数
new esri.dijit.BasemapGallery(params,srcNodeRef?) 实现多层地图服务之间的切换
1.1 属性
- Basemaps 地图服务集合
- Loaded是否加载了服务
- portalUrl可选参数传入一个门户URL,包括实例的名称,用于访问包含基础图画廊的团体项目。
1.2 方法
- add(basemap)添加地图服务
- destroy()破坏小部件
- get(id)返回指定id的基础图
- getSelected()当前选择的基础图
- remove(id) 删除指定id的基础图
- select(id)选择指定ID的基础图
- startup()完成创建部件
1.3 事件
- add 添加基础图层
- Error错误事件
- Load加载事件
- Remove移除图层时候发生的事件
- selection-change 选择服务,发生改变时候的事件
2. Basemap
基础地图类
主要用于地图BasemapGallery
构造:
new Basemap(params)
2.1 Basemap属性
- Id 地图编号
- thumbnailUrl基础图的缩略图的Url
- Title 标题
- Layers 图层集合
2.2 Basemap方法
- ngetLayers()获取图层列表
2.3 Basemap
var waterTemplateLayer = new esri.dijit.BasemapLayer({
url:basemapURL
});
var waterBasemap = new esri.dijit.Basemap({
layers:[waterTemplateLayer],
title:"Water Template",
thumbnailUrl:"images/waterThumb.png"
});
第16讲 编辑Editor(1)
主讲内容
- TemplatePicker
- Editor
1. TemplatePicker
构造函数
new esri.dijit.editing.TemplatePicker(params,srcNodeRef) 采集元素样式模板,到模板中
1.1 TemplatePicker属性
- Grid 引用数据网格用于显示的模板
- Tooltip 显示标签信息
1.2 TemplatePicker方法
- attr(name,value?)获取或设置模板的属性选择器
- clearSelection()清楚当前的选择
- destroy()破坏模板选择
- getSelected()获得用户的选择项
- startup()完成创建部件
- update()更新小部件属性
1.3 TemplatePicker事件
- selection-change选择项目发生改变的时候
2. Editor
地图图像编辑和移动功能
构造函数:
new esri.toolbars.Edit(map,options?)
2.1 Editor属性
- allowAddVertices允许添加到顶点
- allowDeletevertices用户是否可以删除顶点,有效的多段线,多边形和多点几何图形。
- ghostLineSymbol 象征画线
- ghostVertexSymbol象征画有效的多线和多边形的几何图形。
- textSymbolEditorHolder象征一个用户定义的HTML元素的编辑器
- uniformScaling,保留几何调整大小
- vertexSymbol 象征顶点
2.2 Editor方法
- activate(tool,graphic,options?)激活工具栏编辑提供的图形。
- deactivate()禁止使用
- getCurrentState()描述一个对象的当前状态
- refresh()工具栏刷新的内部状态
第17讲 编辑Editor(2)
主讲内容
- Editor事件
- Editor常量
1. Editor事件
Activate 激活产生的事件
Deactivate 禁用产生的事件
graphic-click 点击一个图形产生的事件
graphic-first-move 用户第一次移动图形产生事件
graphic-move 不断的移动图形产生事件
graphic-move-start 开始移动图形产生事件
graphic-move-stop 移动图形停止的时候产生事件
Rotate 旋转的时候会产生事件
rotate-first-move 第一次旋转移动的时候产生事件
rotate-start 旋转开始的时候产生事件
rotate-stop 旋转结束的时候产生的事件
Scale 图形被扩展的时候产生的事件
scale-first-move 图形第一次被扩展移动的时候产生的事件
scale-start 扩展开始的时候的事件
scale-stop 扩展结束的时候的事件
vertex-add 添加顶点的时候
vertex-click 顶点被单击的时候产生的事件
vertex-delete 顶点被删除的时候的事件
vertex-first-move 顶点被第一次移动的时候产生的事件
vertex-mouse-out 顶点鼠标放下的时候产生的事件
vertex-mouse-over 顶点鼠标结束的时候产生的事件
vertex-move 顶点移动的时产生的事件
vertex-move-start 顶点移动开始的时候产生的事件
vertex-move-stop 顶点移动停止的时候产生的事件
2. Editor常量
EDIT_TEXT textSymbol 在编辑模式下,编辑文本内容
EDIT_VERTICES 编辑线,增加、更新、删除
MOVE 移动多边形,线段
ROTATE 旋转 版本2.1
SCALE 调整一个图形 版本2.1
第18讲 编辑Editor(3)
主讲内容
esri/dijit/editing/Editor
编辑器小部件提供了开箱即用的编辑功能 使用一个可编辑的图层功能服务
构造函数:
new Editor(params, srcNodeRef)
1. Editor事件
Load 加载事件
2. Editor常量
CREATE_TOOL_ARROW 箭头工具
CREATE_TOOL_AUTOCOMPLETE 自动完成多边形工具
CREATE_TOOL_CIRCLE 圆形工具
CREATE_TOOL_ELLIPSE 椭圆工具
CREATE_TOOL_FREEHAND_POLYGON 徒手多边形工具
CREATE_TOOL_FREEHAND_POLYLINE 徒手画多段线
CREATE_TOOL_POLYGON 多边形工具
CREATE_TOOL_POLYLINE 多段线工具
CREATE_TOOL_RECTANGLE 矩形工具
CREATE_TOOL_TRIANGLE 三角形工具
第19讲 Geometry(1)
主讲内容
- Geometry
- Point
- Polyline
- Polygon
1. Geometry
- 几何对象的基类。这个类没有构造函数。
2. Point
它是一个地图坐标单位,一个位置定义的X和Y坐标
构造函数1:
构造函数2:new Point(coords, spatialReference)
用一个数组,其中包含一个x,y坐标和空间参考价值。
构造函数3:new Point(json)使用一个JSON对象
构造函数4:new Point(long, lat)
构造函数5:new Point(point)
2.1 Point属性
- spatialReference 空间参考(空间参考描述了一个地物在地球上的真实位置)
- Type几何图形的类型。
- X 经度
- Y 纬度
2.2 Point方法
- getLatitude()返回的纬度坐标
- getLongitude()返回的经度坐标
- normalize()变化的x坐标在+ / - 180
- offset(dx, dy)补偿点的x和y方向
- setLatitude(lat)设置纬度坐标
- setLongitude(lon)设置经度坐标
- setSpatialReference(sr)设置空间参考
- setX(x)集点的x坐标
- setY(y)集点的y坐标
- toJson()转换为JSON对象
- update(x, y)更新x,y坐标
2.3 构造函数1实例
2.4 构造函数2实例
2.5 构造函数3实例
2.6 构造函数4实例
2.7 构造函数5实例
// 构造函数1实例
new Point(-118.15, 33.80, new SpatialReference({ wkid: 4326 }));
// 构造函数2实例
var point = new Point([-122.65,45.53],new SpatialReference({ wkid:4326 }));
// 构造函数3实例
var point = new Point( {"x": -122.65, "y": 45.53, "spatialReference": {"wkid": 4326 } });
// 构造函数4实例
var point = new Point(-98, 38);
// 构造函数5实例
var point = new Point([-98, 38]);
var point = new Point({latitude: 38, longitude: -98});
3. Polyline
多线段
构造函数1:
new Polyline(spatialReference)
构造函数2:
new Polyline(json)
构造函数3:
new Polyline(coordinates)
3.1 Polyline属性
- Paths一个数组的路径
- spatialReference 空间参考
- Type几何类型
3.2 Polyline方法
addPath(path) 添加一个路径折线。
getExtent() 获取折线范围
getPoint(pathIndex, pointIndex)
返回一个指定一个点
insertPoint(pathIndex, pointIndex, point)
在折线上插入一个点
removePath(pathIndex) 移除一条折线
removePoint(pathIndex, pointIndex)
删除给定多段线内的点
setPoint(pathIndex, pointIndex, point)
修改在一条线上的点
toJson()转换为JSON对象
3.2 构造函数1实例
构造函数2实例
构造函数3实例
// 构造函数1实例
new Polyline(new SpatialReference({wkid:4326}));
// 构造函数2实例
var polylineJson = {
"paths":[[[-122.68,45.53], [-122.58,45.55],[-122.57,45.58],[-122.53,45.6]]],
"spatialReference":{"wkid":4326}
};
var polyline = new Polyline(polylineJson);
// 构造函数3实例
var singlePathPolyline = new Polyline([[-50, 0], [-120, -20], [-130, 0]]);
4. Polygon
- 多边形
- 构造1:new Polygon(spatialReference)
- 构造2:new Polygon(json)
- 构造3:new Polygon(coordinates)
4.1 Polygon属性
- Rings一个数组的环。每个环是由三个或三个以上的点
- spatialReference 空间参考
- Type 几何类型
4.2 Polygon方法
- addRing(ring)添加一个多边形环
- contains(point) 如果指定的点在多边形内,检查客户端
- fromExtent(extent)返回一个新的多边形环
- getCentroid()返回多边形的中心点
- getExtent()返回多边形的范围
- getPoint(ringIndex, pointIndex)返回一个指定的点
- insertPoint(ringIndex, pointIndex, point)插入指定点
- isClockwise(ring)检查是否一个多边形戒指是顺时针方向。
- removePoint(ringIndex, pointIndex)移除指定的点
- setPoint(ringIndex, pointIndex, point)修改指定的点
- setSpatialReference(sr)设置空间参考
- toJson()转换为JSON对象
4.3 构造函数1
构造函数2
构造函数3
// 构造函数1
var poly = new Polygon(new SpatialReference({wkid:4326}));
// 构造函数2
var poly = new Polygon(new SpatialReference({wkid:4326}));
var polygonJson = {
"rings":[[[-122.63,45.52],[-122.57,45.53],[-122.52,45.50],[-122.49,45.48], [-122.64,45.49],[-122.63,45.52],[-122.63,45.52]]],
"spatialReference":{"wkid":4326 }};
var polygon = new Polygon(polygonJson);
// 构造函数3
var singleRingPolygon = new Polygon([[50, 0], [150, 20], [150, -20], [50,0]]);
第20讲 Geometry实例(1)
主讲内容
第21讲 Geometry(2)
主讲内容
- Circle
- Extent
- ScreenPoint
1. Circle
- 圆型类
- 构造1:new Circle(center, options?)
- 构造2:new Circle(params)
1.1 Circle属性
- Center 圆的中心点。
- Radius 半径
- radiusUnit 半径单位
- Rings 数组的坐标值构成圆环
- spatialReference 空间参考
- Type 几何类型
2.2 Circle方法
- addRing(ring) 添加一个多边形环
- contains(point) 指定的点是否在范围内
- fromExtent(extent) 根据范围返回一个几何图形
- getCentroid() 返回定义多边形的中心点
- getExtent() 返回范围
- getPoint(ringIndex, pointIndex) 获取指定索引的点
- insertPoint(ringIndex, pointIndex, point)插入点
- isClockwise(ring)判断环是否为顺时针方向
- removePoint(ringIndex, pointIndex)移除点
- removeRing(ringIndex)移除环
- setPoint(ringIndex, pointIndex, point)把一个点添加到圆中
- toJson()转换为JSON
2. Extent
- 范围
- 构造:new Extent(xmin, ymin, xmax, ymax, spatialReference)
2.1 Extent属性
nspatialReference空间参考
Type几何类型
- Xmax
- Xmin
- Ymax
- Ymin
2.2 Extent方法
- centerAt(point)设置中心点
- contains(geometry)判断几何对象是否在范围内
- getCenter()获得中心点
- getHeight()获得高度
- getWidth()获得宽度
- intersects(geometry)获取相交的范围
- update(xmin, ymin, xmax, ymax, spatialReference)更新范围内容
3. ScreenPoint
- 屏幕坐标对象
- 构造:new ScreenPoint(x, y)
3.1 ScreenPoint属性
- x
- y
3.2 ScreenPoint方法
- setX(x)
- setY(y)
- update(x, y)
第22讲 符号渲染(1)
主讲内容
- Renderer
- ClassBreaksRenderer
- DotDensityRenderer
- ScaleDependentRenderer
1. Renderer
渲染器的基类,没有构造函数
1.1 Renderer属性
- colorInfo 为图层元素定义颜色信息
- opacityInfo 图层元素透明度
- rotationInfo 定义旋转符合标志
1.2 Renderer方法
- getColor(graphic)获取图形颜色
- getOpacity(graphic)获取图像透明度
- getRotationAngle(graphic)获取图形旋转角度
- getSize(graphic)返回图形符号的大小(以像素为单位)
- getSymbol(graphic)得到图形的样式
- setColorInfo(info)设置颜色信息
- setOpacityInfo(info)设置透明度信息
- setRotationInfo(info)设置旋转信息
- setSizeInfo()设置符号大小
- toJson() 转换为JSON对象
2. ClassBreaksRenderer
基于某些属性值的类渲染器
构造函数1:new ClassBreaksRenderer(defaultSymbol, attributeField)
构造函数2:
new ClassBreaksRenderer(json)
2.1 ClassBreaksRenderer属性
- attributeField属性字段
- backgroundFillSymbol背景填充样式
- classificationMethod用于生成类,分类方法
- colorInfo颜色信息
- defaultSymbol 默认样式
- Infos提供了信息类、渲染信息的数组
- isMaxInclusive是否最大值
- normalizationField 规范化字段名称
- normalizationTotal总体规范
- normalizationType规范类型
- opacityInfo 透明信息
- rotationInfo旋转信息
- sizeInfo 大小信息
2.1 ClassBreaksRenderer方法
- addBreak(minValueOrInfo, maxValue?, symbol?) 添加一个渲染器
- clearBreaks() 清楚所有渲染器
- getBreakIndex(graphic) 获取图形索引
- getBreakInfo(graphic)返回渲染信息
- getColor(graphic)返回图形颜色
- getOpacity(graphic)返回图形透明度
- getRotationAngle(graphic)返回图形旋转角度
- getSize(graphic)返回图形大小,像素
- getSymbol(graphic)返回样式
- removeBreak(minValue, maxValue)删除渲染
- setOpacityInfo(info)设置透明度信息
- setRotationInfo(info)设置旋转信息
- setSizeInfo()设置符号大小
- toJson() 转换为JSON对象
3. DotDensityRenderer
能够创建可视化的数据点密度
构造函数:
new DotDensityRenderer(params)
3.1 DotDensityRenderer属性
- backgroundColor 背景颜色
- colorInfo 颜色信息
- dotShape 用于渲染点
- dotSize 点的大小(以像素为单位)。
- dotValue 一个点代表的价值
- Fields 字段数组
- opacityInfo 透明信息
- Outline线轮廓特性
- rotationInfo 旋转信息
- sizeInfo 符号大小
3.2 DotDensityRenderer方法
- getColor(graphic) 获取颜色
- getOpacity(graphic)获取透明度
- getRotationAngle(graphic)获取旋转角度
- getSize(graphic)获取符号大小
- getSymbol(graphic)获取样式
- setBackgroundColor(color)获取背景色
- setColorInfo(info) 获取颜色信息
- setDotSize(size)获取点大小
- setDotValue(value)设置点的值
- setOpacityInfo(info)设置透明度
- setOutline(outline)设置线轮廓
- setRotationInfo(info)设置旋转信息
- setSizeInfo() 设置符号信息
- toJson()转换为JSON对象
4. ScaleDependentRenderer
- 具有使用多个渲染器的能力
- 构造函数:
- new ScaleDependentRenderer(options?)
4.1 ScaleDependentRenderer属性
- rendererInfos渲染器信息
- 其他属性跟renderer基类一样
4.2 ScaleDependentRenderer方法
- getRenderInfoByZoom(zoom) 返回缩放级别
- getRendererInfo(graphic) 返回图形渲染信息
- getRendererInfoByScale(scale) 返回指定的渲染器的信息
- 其他方法继承于Renderer基类
4.3 关于点的DOT的解释
- 通常一个点是不止一个。例如,如果字段的值被映射为150000,dotValue 1000功能将有150点随机放置边界内的功能。值围捕。499不会得到一个点的值。500将获得一个点的值。
第23讲 符号渲染(2)
主讲内容
- HeatmapRenderer
- SimpleRenderer
- UniqueValueRenderer
1. HeatmapRenderer
这个渲染器使用高斯模糊技术,在可视化强调更高密度的区域, 呈现点数据到一个光栅
构造函数:
new HeatmapRenderer(options)
1.1 HeatmapRenderer属性
- blurRadius 圆的模糊半径(像素),
- colorStops 颜色站点数组
- colors 字符串数组的CSS颜色
- field 属性的名称字段,用于热图点
- maxPixelIntensity 分配的最终颜色渐变
- inPixelIntensity 分配的最初颜色渐变
1.2 HeatmapRenderer方法
- setBlurRadius(blurRadius)设置渲染器的模糊半径
- setColorStops(stops)设置colorStops属性,并返回HeatmapRenderer实例
- setColors(colors)设置颜色用于插入颜色渲染器
- setField(field)设置渲染器使用的属性字段
setMaxPixelIntensity(maxPixelIntensity)
设置渲染器的最终颜色渐变
setMinPixelIntensity(minPixelIntensity)
设置渲染器的最初颜色渐变
toJson()转换为JSON对象
2.SimpleRenderer
符号渲染器
构造函数1:
new SimpleRenderer(symbol)
构造函数2:
new SimpleRenderer(json)
2.1 SimpleRenderer属性
- Description 渲染器的描述
- label渲染器的标签
- symbol渲染器的样式
- 其他继承Renderer
2.2 SimpleRenderer方法
- getSymbol(graphic)获得图形的样式
- 其他方法继承与Renderer
3.UniqueValueRenderer
图形组织匹配属性,一个唯一值渲染器,为每一个值添加渲染
构造函数1
new UniqueValueRenderer(defaultSymbol, attributeField, attributeField2?, attributeField3?, fieldDelimeter?)
构造函数2
new UniqueValueRenderer(json)
3.1 UniqueValueRenderer属性
- attributeField
- attributeField2
- attributeField3
- defaultLabel默认标题
- defaultSymbol默认样式
- fieldDelimiter字符串之间插入多个属性字段的值
- infos 信息数字
- opacityInfo 透明度信息
- rotationInfo 角度信息
- sizeInfo符号大小信息
3.2 UniqueValueRenderer方法
addValue(valueOrInfo, symbol?)添加渲染器
getColor(graphic) 获取图形颜色
getOpacity(graphic)获取图形透明度
getRotationAngle(graphic)获取旋转角度
getSize(graphic) 获取图形字符大小
getSymbol(graphic) 获取图形样式
- getUniqueValueInfo(graphic)获取图形渲染器
- removeValue(value)删除值
- setColorInfo(info) 设置颜色信息
- setOpacityInfo(info)设置透明度信息
- setRotationInfo(info) 设置旋转信息
- setSizeInfo() 设置符号大小信息
- toJson() 转换为JSON对象
第24讲 Symbol(1)
主讲内容
- Symbol
- FillSymbol
- LineSymbol
- MarkerSymbol
- PictureFillSymbol
- PictureMarkerSymbol
- SimpleFillSymbol
- SimpleLineSymbol
- SimpleMarkerSymbol
- TextSymbol
1. Symbol
样式符号,是用来显示点、线和多边形图形层
属性
color颜色
type类型
方法
setColor(color)设置颜色
toJson()转换为JSON对象
2. FillSymbol
填充符号,是用来绘制多边形图形层特性
属性
outline多边形的轮廓
其他属性继承Symbol
方法
setOutline(outline)设置多边形轮廓
其他方法继承Symbol
3. LineSymbol
行符号,是用来绘制图形层线性特性
属性
width线的宽度
其他属性继承Symbol
方法
setWidth(width)设置线的宽度
其他方法继承Symbol
4. MarkerSymbol
- 标记符号,是用来画点和测点的图形层
4.1 MarkerSymbol属性
- angle 标记的角度
- color 符号颜色
- size 符号大小
- type 符号类型
- xoffset 在x轴偏移量,像素
- yoffset 在y轴偏移量,像素
4.2 MarkerSymbol方法
- setAngle(angle)顺时针旋转,符号围绕其中心指定的角
- setColor(color)设置颜色
- setOffset(x, y) 设置偏移
- setSize(size) 设置大小
- toJson() 转换为Json 对象
5. PictureFillSymbol
使用一个图像填充多边形符号,是用来绘制多边形图形层特性
构造函数1:
new PictureFillSymbol(url, outline, width, height)
构造函数2:
new PictureFillSymbol(json)
5.1 PictureFillSymbol属性
Color 颜色
height 高度
outline 多边形的轮廓
ntype 类型
url 图片路径
width 宽度。
- xoffset x偏移量
- xscale 在x方向比例因子。
- yoffset y偏移量
- yscale 在y方向比例因子。
5.2 PictureFillSymbol方法
- setColor(color) 设置颜色
- setHeight(height)设置高度
- setOffset(x, y) 设置偏移量
- setOutline(outline) 设置线轮廓
- setUrl(url)设置图片地址
- setWidth(width)设置宽度
- setXScale(scale)设置x方向比例因子
- setYScale(scale)设置y方向比例因子
- toJson()转换为Json对象
6. PictureMarkerSymbol
图片标记符号,是用来画点和测点的图形层
构造函数1:
new PictureMarkerSymbol(url, width, height)
构造函数2:
new PictureMarkerSymbol(json)
6.1 PictureMarkerSymbol属性
- angle标记的角度
- color 颜色
- height 高度
- size 大小
- type 类型
- url 图片路径
- width宽度
- xoffset x偏移量
- yoffset y偏移量
6.2 PictureMarkerSymbol方法
- setAngle(angle) 设置角度
- setColor(color) 设置颜色
- setHeight(height)设置高度
- setOffset(x, y) 设置偏移量
- setSize(size) 设置大小
- setUrl(url)设置图片路径
- setWidth(width)设置宽度
- toJson() 转换为JSON对象
7. SimpleFillSymbol
- 填充符号是用来绘制多边形图形层特性。透明或交叉影线模式之一
new SimpleFillSymbol()
new SimpleFillSymbol(style, outline, color)
new SimpleFillSymbol(json)
7.1 SimpleFillSymbol属性
- color 颜色
- outline 轮廓
- style 样式
- type类型
7.2 SimpleFillSymbol方法
- setColor(color) 设置颜色
- setOutline(outline)设置线轮廓
- setStyle(style)设置样式
- toJson() 转换为Json对象
8. SimpleLineSymbol
- 行符号是用来绘制图形层线性特性。SimpleLineSymbol是实线或预定义的模式的破折号和点。
new SimpleLineSymbol()
new SimpleLineSymbol(style, color, width)
new SimpleLineSymbol(json)
8.1 SimpleLineSymbol属性
- color 颜色
- style 样式
- type 类型
- width 宽度
8.2 SimpleLineSymbol方法
- setColor(color) 设置颜色
- setStyle(style) 设置样式
- setWidth(width) 设置宽度
- toJson() 转换为JSON对象
9. SimpleMarkerSymbol
- 标记符号是用来画点和测点的图形层。SimpleMarkerSymbol用于显示点作为一个简单的形状
new SimpleMarkerSymbol()
new SimpleMarkerSymbol(style, size, outline, color)
new SimpleMarkerSymbol(json)
9.1 SimpleMarkerSymbol属性
- angle 角度
- color 颜色
- outline 轮廓
- size 大小
- style 样式
- type 类型
- xoffset x偏移量
- yoffset y偏移量
9.2 SimpleMarkerSymbol方法
- setAngle(angle)设置角度
- setColor(color) 设置颜色
- setOffset(x, y)设置偏移量
- setOutline(outline)设置轮廓线
- setPath(path)设置路径
- setSize(size)设置大小
- setStyle(style)设置样式
- toJson()转换为json对象
10. TextSymbol
- 文字符号,用于在图形上添加文本图层
new TextSymbol(text)
new TextSymbol(text, font, color)
new TextSymbol(json)
10.1 TextSymbol属性
align 文本对齐的点
angle 文本的角度
color 颜色
decoration 文本上的装饰
font 字体
horizontalAlignment 水平对齐文本
kerning 决定是否调整间距字符在文本字符串
rotated 决定是否旋转文本字符串中的每个字符
text 文本字符串显示在图形层
type 符号的类型
verticalAlignment 垂直对齐文本。
xoffset x偏移量
yoffset y偏移量
10.2 TextSymbol方法
- setAlign(align) 设置文本的对齐
- setAngle(angle) 设置文本的角度。
- setColor(color) 设置颜色
- setDecoration(decoration) 设置文本的装饰。
- setFont(font) 设置字体
- setHorizontalAlignment(alignment) 更新文本的水平对齐的象征
- setKerning(kerning) 是否设置为文本字符串中的字符间距调整
- setOffset(x, y) 设置文本的x和y偏移
- setRotated(rotated) 设置文本字符串中的每个字符是否旋转。
- setText(text) 设置文本字符串。
- setVerticalAlignment(alignment) 更新文本的垂直对齐
- toJson() 转换为JSON对象