arcgis web for js

来源:互联网 发布:北京蓝鲸网络官网 编辑:程序博客网 时间:2024/05/18 23:57

官方网址  
api 地址  
demo地址  
多功能工具栏

主题下载地址:
claro
tundra
nihilo
soria

沙箱底图可选方案: “satellite”, “hybrid”, “topo”, “gray”, “oceans”, “osm”, “national-geographic”

[如何做技术选型] (http://blog.csdn.net/dojotoolkit/article/details/7682978)http://blog.csdn.net/dojotoolkit/article/details/7682978

沙盒测试地址
subline ARCGIS sdk本地服务器地址
subline ARCGIS 测试地址
esri github资源代理 java php DotNet
arcgis help 中文

开发流程
下载 arcgis 的api 和 sdk
启用本地服务,将api,sdk 装载在本地服务中
修改配置文件 (arcgis_js_v311_api 下面install.html)
新建文件夹作为项目文件夹
创建测试文件

学习资源: (需付费)
http://edu.csdn.net/course/detail/5037
http://edu.csdn.net/course/detail/4384
http://edu.csdn.net/course/detail/799/10901?auto_start=1

中国基础地理信息数据:
链接 密码: ncx7

ArcGIS10.2破解版下载
链接 密码: j9y6

重要资源:
ersi video
dojo 官网
如何使用dojo dijit调整 widget 的样式?
如何使用dojo 制作”轮子”?(如何制作一个回到原点的功能)

GIS Stack Exchange 提问
arcgis 博客
arcgis 修改默认配置教程

教程:
arcgis 地图操作
添加点,线段,几何图形
地理处理任务-服务区域任务
交流qq群: 452117357

//可用链接
https://developers.arcgis.com/javascript/3/sandbox/sandbox.html?sample=ed_toolbar 二次编辑已有polygon

总结:
切片地图服务图层(TiledMapServiceLayer)多预先创建并还存在服务器中,多用做底图使用,
动态地图服务图层(DynamicMapServiceLayer)是每次发生一个请求后创建的,支持多种类型的操作(查询,设置定义表达式)

map对象的事件类型有: 鼠标事件 范围改变事件 地图改变事件 键盘事件 图层事件 平移缩放事件 等图形图层包括(皆为可选项)!!case1    几何形状    符号    属性    信息模版    流程示范        创建几何图形   var point = new Point(Number(theX), number(theY))        创建符号       var markerSymbol = new SimpleMarkerSymbol();        分配属性       markerSymbol.setStyle(markerSymbol.STYLE_CIRCLE);                       markerSymbol.setSize(12);                       markerSymbol.setColor(new Color([255,0,0,0.5]))        创建图形       var pointGraphic = new Graphic(pointESRI, markerSymbol)        添加图形       map.graphics.add(pointGraphic)    创建图形图层继承自 esri/geometry        包括:Point Multipoint Polyline Polygon Extent    创建符号: 点   SimpleMarkerSymbol (多点也行)               线   SimpleLineSymbol               面   SimpleFillSymbol               图片 PicturMarkerSymbol               文字 textSymbol    分配属性 样式 (STYLE_CIRCLE STYLE_CROSS STYLE_DIAMONO STYLE_PATH STYLE_SQUARE)             大小 轮廓 颜色

特征图层 用于与用户交互使用 !!case2

    流程:        创建featureLayer对象 new FeatureLayer(url, {})        设置可选参数            {                mode: FeatureLayer.MODE_SNAPSHOT, // 显示模式                 outFields: [], //查询字段                refreshInterval: 5, //设置图层刷新时长(分钟)                disPlayOnPan: true //设置为false时可提高ie渲染的效率            }        定义显示模式            快照模式  FeatureLayer.MODE_SNAPSHOT 一次加载,直接使用            按需模式  FeatureLayer.MODE_ONDEMAND 按需加载,负载均衡            选择模式  FeatureLayer.MODE_SELECTION 加载选择的内容        设置定义表达式(过滤)            FeatureLayer.setDefinitionExpression("PROD_RES = 'yes'");        特征选择 FeatureLayer.selectFeatures            eg:                var selectQuery = new Query();                selectQuery.geometry = geometry;                // 定义选择一个新的选择集                FeatureLayer.selectFeatures(selectQuery, FeatureLayer.SELECTION_NEW)                 // or 为已有选择集添加特征                //FeatureLayer.selectFeatures(selectQuery, FeatureLayer.SUBTRACT)         特征涂层渲染              有五种可选渲染器:                 SimpleRenderer          简单为所有图形设置同样的符号                ClassBreakRenderer      针对数字属性的分级设置不同的符号                UniqueValueRenderer     符号化图形(为每一个图形设置唯一的符号)                DotDensityRenderer      显示空间离散的密度分布(人口密度)                TemporalRenderer        提供基于时间的特征渲染            关键流程:                创建渲染器     var renderer = new ClassBreakRenderer(symbol, "POPSQMI");                定义符号       renderer.addBreak(0, 5, new SimpleFillSymbol().setColor([255, 0, 0, 0.5]));                               renderer.addBreak(5.01, 10, new SimpleFillSymbol().setColor([255, 255, 0, 0.5]));                               renderer.addBreak(10.01, 25, new SimpleFillSymbol().setColor([0, 255, 0, 0.5]));                               renderer.addBreak(25.01, Infinity, new SimpleFillSymbol().setColor([255, 128, 0, 0.5]));                应用到特征图层 featureLayer.setRenderer(renderer);                注: -Infinity、Infinity 表示数据下限、上限控件与工具栏  [示例:]https://developers.arcgis.com/javascript/3/samples/toolbar_draw/    流程:        1. 为每一个按钮设置样式         2. 在工具栏创建按钮        3. 创建一个esri/toolbars/Navigation 或者 esri/toolbars/Draw 实例        4. 关联按钮事件到处理函数中    arcgis 中的控件:https://developers.arcgis.com/javascript/3/jssamples/widget_bookmarks_editable.html        BasemapGallery    底图画廊  用以切换地图        Bookmarks         书签        Print             地图导出        Geocoder          搜索框        Gauge             仪表盘        Measurement       测量长度 面积 获取鼠标的当前的坐标        Popup             模态框        Legend            显示地图上的标签与符号        OverviewMap       鹰眼图        Scalebar          比例尺        Directions        计算路径(导航)        HistogramTimeSlider 以时间柱图来代表地图上的图层数据的启用时间        HomeButton        返回地图的初始范围        LocateButton      查找并缩放到用户当前的位置        TimeSlider        可视化启用时间的图层        LayerSwipe        用于比较同一底图上不同图层的内容        分析类控件            AnalysisBase             ...    特征编辑 针对企业地理数据库存储的格式数据进行创建 删除 移动 剪切 合并 重塑        --> 特征服务 为web编辑提供符号化和几何数据特征   制作地图 -- 发布服务 -- 二次编辑            --> 特征部件                    Editor 编辑一个图层(立即保存)                        特征创建 移动 删除 编辑, 节点编辑,属性编辑, 关联附件                    templatePicker 点击符号化(popWindow?)                    AttributeInspector 可通过web编辑特征属性(eg:日历控件)                    AttachmentEditor 关联一个特征到附件                    Edit 自定义工具栏空间与属性查询(query QueryTask)    任务模式: 输入 --> 任务 --> 输出    流程:输入 -- 输入参数存储在 Query          任务 -- QueryTask执行任务          输出 -- 返回FeatureSet 结果集,包含一个Graphic特征数组    Query (可结合使用)        geometry 空间查询(几何输入 点 线 面)        where 定义属性查询        text 模糊查询(类似于where)        其他可选属性            定义返回的字段           输出空间参考系(几何类信息)           符合查询条件的几何特征信息    -    -    eg: 属性查询        var queryTask = new QueryTask(url);        var query = new Query();        query.returnGeometry = false;  //限制返回的字段        query.outFields = ['*']; //*代表返回所有字段        query.where = 'STATE_NAME = "shanxi"' /文本信息必须用引号包裹,数字布尔值除外        query.text ='shiquan';        queryTask.execute(query, callback, errback)        function callback(FeatureSet){} function errback(){}    -    -    空间查询 (几何元素 空间关系常量)        可传入的几何元素 Extent Point Polyline Polygon        空间关系常量         SPATIAL_REL_INTERESECTS            特征类1的部分或者全部特征都包含在特征类2的特征中        SPATIAL_REL_CONTAINS               特征类1的部分特征包含在特征类2的特征中        SPATIAL_REL_CROSSES                特征类1的特征和特征类2的特征的并集        SPATIAL_REL_ENVELOPE_INTERSECTS    特征类1的特征和特征类2的特征的交集        SPATIAL_REL_OVERLAPS               特征类1的特征覆盖特征类2的特征        SPATIAL_REL_TOUCHES                特征类1的特征涉及特征类2中的边界特征        SPATIAL_REL_WITHIN                 特征类1的特征完全被封闭在特征类2的特征中        SPATIAL_REL_RELATION               允许使用图形对比语言定义来指定的任何关系    eg:        var query = new Query();        query.geometry = evt.mapPoint;        query.spatialRelationship = SPATIAL_REL_INTERESECTS;    获取查询的结果集        function callback(FeatureSet){            var features = FeatureSet.features;            var feature = null;            for(var i=0; i<features.length; i++){                var feature = features[i];                var attributes = feature.attributes                pop = attributes.POP90_SQMI                 map.graphics.add(features[i].setSymbol(sym)) =>设置符号            }        }-       --另外两种查询的方法          IdentityTask           FindTask相同点:都能返回特征相关的属性  都能返回特征相关的属性不同点:被动执行(点击执行)    主动执行(属性查询)-IdentityTask 返回图层中字段的属性    流程:        IdentityParameters        IdentityTask        IdentityResult    IndentityParameters        {            geometry   地理信息       evt.mapPoint            returnGeometry  boolean   true            layerIds   执行图层的Id  [0,1]            tolerance  公差(相当于相似度,过高结果则少,过低或匹配不到,需要不断调试) number        }     IndentityTask         var identityTask = new IdentityTask(url)        var identityParameters = new IdentityParameters()        identityParameters.geometry = evt.mapPoint;        -        identityTask(identityParameters, callback, errback);FindTask (查找之前必需引入 esri/taks/find resource)    流程:        FindParameters         FindTask        FindResult    FindParameters 可选参数        {            searchText  查找属性和字段  dom.byId('ownerName').value;            serachFields: [] //跨域搜索使用到的字段            returnGeometry            layerIds            geometry            contains: false 精确查找,反之模糊查询不区分大小写        }    地址转换点 和 点转换地址 !!case5将地址添加到地图的流程:    地理编码为地址分配坐标        => Locator服务        - Locator 类    输入参数        - Address对象 (json)        - Point对象 (逆地理编码)【操作地图获得】    提交到地理编码服务    返回匹配到地址的AddressCandidate对象    绘制到地图-网络分析任务(最短路径,临时设施, 服务区)    RouteParamters    RouteTask    RouteResult整合ArcGIS Online     使用webmap ID 为应用程序添加ArcGIS Online    使用JSON 为应用程序添加ArcGIS Online 地图