最近摸索arcgis的一点心得,希望对初来着有些帮助

Posted aman11

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最近摸索arcgis的一点心得,希望对初来着有些帮助相关的知识,希望对你有一定的参考价值。

 

最近突然想写点东西,记录一下对软件开发上的一些学习心得(其实一直以来都想写点东西,慰藉自己在这些年踩过的坑留点)。

主要写三个大方面:

1、  arcgis

记录arcgis for js的开发,涉及:环境部署、arcgis js 图层控制,服务图层查询,动态图层数据查询,标准显示,自定义的infowindow,arcgis 模型, GP服务调用。

2、  .NET。

反射,lamda ,redis,MVC,unity,sokcet 以及几个我常用的设计模式。

  3、数据库

   触发器、存储过程的编写,以及SQL调优的方式方法。

除此以外还会把系统开发中用到的js框架(bootstrap,easyui),arcgis开发中使用到的python都会记录。

      今天主要写arcgis的部署与动态图层的查询与显示。

      对于那些不熟悉arcgis而言的而言就是安装与破解都能让你头痛三天,所以我还是把我部署先说说。

      Arcgis的安装与破解就不说了,百度很多。

我以10.2为例。安装完成desktop和server以后,需要部署一下dojo包。

这是我解压以后的目录:

 技术分享图片

 

我们需要更改两个文件的配置,

      第一个文件:

 技术分享图片

 

搜索:<myserver>,然后把他替换成可以从浏览器访问的路径,比如我的计算机为:win10,IIS发布如图:

技术分享图片

 

,替换后:

 技术分享图片

 

第二个文件:

技术分享图片

 

搜索:<myserver>,然后按照第一个文件的替换方式,替换

 技术分享图片

 

     替换后,重启网站。

     在浏览器中输入:http://localhost:6080/arcgis/rest/services/SampleWorldCities/MapServer?f=jsapi ,出现:

 技术分享图片

 

查看源文件,你会发现:

技术分享图片

 

刚刚说的是部署安装,百度上还是有不少,不足为道。

接下来介绍一个实用的功能:我们经常需要通过鼠标右键画一个范围,能将范围内的需要的信息查询出来。如图所示:

 技术分享图片

 

这个需要使用到draw-complete事件,该事件就是用于在鼠标点击右键画指定区域完成后触发的事件。在这个里面通过result获取当前获得绘图得到的面result.geometry;,然后找到需要与之进行相交的图层,这个图层可以是已经发布的动态图层,也可以是自己建立的graphic layer。通过result.geometry. contains方法遍历得到相对应的结果。以下是具体代码:

on(toolBar, "draw-complete", function (result) {

                    //获得绘图得到的面

                    var geometry = result.geometry;

                    MaskUtil.mask("开始空间查询分析,分析完成后请查看结果...");

                    //关闭绘图工具

                    toolBar.deactivate();

                    var graphicRainLayer = map.getLayer("graphicRainLayer");//是否有雨量数据

                    selectedGraphics = [];

                    var queryResultLayer = new esri.layers.GraphicsLayer({ id: "queryResultLayer" });

                    map.addLayer(queryResultLayer);

                    var graphics = graphicRainLayer.graphics;

                    for (var i = 0, total = graphics.length; i < total; i++) {

                        if (result.geometry.contains(graphics[i].geometry)) {

                            var template = new InfoTemplate();

                            template.setTitle("站点全景");

                            template.setContent(“查找到的站点”);

                            var points = new Graphic(graphics[i].geometry, createSymbol("#0ff"), graphics[i].attributes, template);

                            queryResultLayer.add(points);

                        }

                    }

 

                });

   

如果希望查询到的点能够显示出来,则可以新建一个graphic layer,将获得到的几何对象添加进来显示即可。

截一些最近开发的一些系统截图。

 技术分享图片

 

               面雨量分析(基于样条函数生产)

 技术分享图片

 

 

       点击不同颜色的按钮,则会自动显示对应的面积(紫色为自定义选择的颜色)

 技术分享图片

 

 

自动分析不同降雨等级降雨涉及到的乡镇名称,以及影响的面积。

 技术分享图片

 

      分析指定区域下存在的受影响的重点企业是那些?并显示如下图:

 技术分享图片

 

             通过空间计算,查找到受影响的重点单位,点击上面的圆点,可以查看当前企业的360度实景图片。显示实景的弹出框为自定义的弹出框,是不是很实用。

 技术分享图片

 

在图片上移动鼠标就能像谷歌街景一样的360查看。

 

以上是关于最近摸索arcgis的一点心得,希望对初来着有些帮助的主要内容,如果未能解决你的问题,请参考以下文章

大龄程序员的出路在哪里?八年老Android的一点心得

编译过程的一点心得

看书写代码的一点心得

verilog--记verilog程序设计的一点心得

Vuex 实际使用中的一点心得 —— 一刷新就没了

Android平板上开发应用的一点心得——精确适配不同的dpi和屏幕尺寸