长达一年多的开发之旅算是结束了,老早想着写点东西纪念下,方便以后查看或者和哥们吹吹牛逼。结果拖拖拖,,,拖了一个多月到了现在0.0
许可到期了,所以写的东西可能有很多纰漏,还请各位大佬多多指点~
话不多说,下面开始~!
我们的数据处理主要利用比赛方提供的GeoScene Pro进行数据的 存储 及发布。在ArcGIS中的数据及GP工具的发布我会单独写一篇文章。



发布成功后,点击成功的 超链接 就可以跳转到如下图所示的界面:
这个就是咱们发布的图层的url哦~,开发过程中,把url填到相应的位置就可以调用了,
碎碎念:我们调用过程中,老是会在系统出现一个显示登录的框。我们自行搭建的portal储存数据也会弹出框。后来经过我们小组另外一个人尝试,只需在发布的时候将数据共享至所有人就可以解决。。。可能以后能找到更好的解决方案吧,先留个坑
在生成的appbuilder内个文件夹中,将这个demo复制一个,然后粘贴到放置微件(widgets文件夹)中,就完成了第一个微件的初始创造啦~
微件内的基本构造:
以咱们“刚刚”发送的内个图层为例,如何编写一个点击按钮显示图层,点击第二个图层关闭图层的demo呢?
基础的html,css和js这里不讲了,这里比较关键的就是这个
data-dojo-attch-event
代码如下:
<div>
<button class="topbr btn btn-mq ViewComments" type="button" data-dojo-attach-event="click:Come">出现</button>
<button class="topbr btn btn-mq ViewComments" type="button" data-dojo-attach-event="click:Disappear">消失</button>
</div>
这里面链接的就是js文件的两个come和disappear
前面写的css我这里用了我们之前写好的css。。
首先肯定是要去js api中找好相应需要的 类 填入define中,这里我找一个我们之前写好的一个简单功能,作为实例。
用什么写什么,千万别写多了哦~
define([
'dojo/_base/lang',
'dojo/_base/declare',
"dojo/dnd/move",
"dojo/_base/fx",
"dojo/_base/array",
'dojo/parser',
'jimu/BaseWidget',
"dijit/form/CheckBox",
"dijit/a11yclick",
'dojo/topic',
"esri/Color",
"esri/graphicsUtils",
"esri/domUtils",
"esri/tasks/QueryTask",
"esri/tasks/query",
"esri/graphic",
"esri/tasks/FeatureSet",
"esri/geometry/Point",
"esri/SpatialReference",
"esri/InfoTemplate",
"esri/layers/GraphicsLayer",
"esri/layers/FeatureLayer",
"esri/symbols/PictureMarkerSymbol",
"esri/renderers/SimpleRenderer",
"esri/symbols/SimpleFillSymbol",
"esri/symbols/SimpleLineSymbol",
"esri/symbols/SimpleMarkerSymbol",
"esri/tasks/Geoprocessor",
"esri/tasks/RouteTask",
"esri/tasks/RouteParameters",
"esri/symbols/CartographicLineSymbol",
"esri/geometry/Circle",
"esri/layers/ImageParameters",
"esri/graphic",
"esri/geometry/webMercatorUtils",
"esri/toolbars/draw",
"esri/dijit/Legend",
"esri/renderers/HeatmapRenderer",
"esri/dijit/LayerSwipe",
"esri/dijit/Popup",
"esri/dijit/PopupTemplate",
"esri/dijit/Search",
"dojo/on",
"dojo/dom",
"dojo/dom-attr",
"dojo/dom-construct",
"dojo/dom-class",
"dojo/_base/xhr",
"dijit/registry",
"dojo/domReady!",
],
function (
lang,
declare,
move,
fx,
array,
parser,
BaseWidget,
CheckBox,
allyclick,
topic,
Color,
graphicsUtils,
domUtils,
QueryTask,
Query,
graphic,
FeatureSet,
Point,
SpatialReference,
InfoTemplate,
GraphicsLayer,
FeatureLayer,
)
图层的显示和消失主要是利用到了js api中的图层显示,这里直接给出代码
//显示要素
Come: function () {
var self = this;
self.demolayer = new FeatureLayer("https://lzxgiser.arcgis.cn:6443/arcgis/rest/services/layer/MainRoads/MapServer/0");
self.map.addLayer(self.demolayer);
},
var self = this; 这句代码的作用是将上层代码直接引用到此(项目大了之后这句代码真的超级好用!!!)
好了,一个基本的功能编写就完成了,还有很多细节这里时间不太够就先不写了。总之就是一句话:api看得越透,后期写的就越轻松。。
下一篇文章我打算写一下在ArcMap中 矢量数据 以及GP工具的发布和调用。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删