arcgis web for js

官方网址  
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 地图
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值