许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  易智瑞杯中国大学生软件开发竞赛开发心得(一):参赛经验分享

易智瑞杯中国大学生软件开发竞赛开发心得(一):参赛经验分享

阅读数 2
点赞 0
article_banner

易智瑞杯中国大学生软件开发竞赛,开发心得1


利用ArcGIS AppBuilder自定义创建一个网站

长达一年多的开发之旅算是结束了,老早想着写点东西纪念下,方便以后查看或者和哥们吹吹牛逼。结果拖拖拖,,,拖了一个多月到了现在0.0

   许可到期了,所以写的东西可能有很多纰漏,还请各位大佬多多指点~

   话不多说,下面开始~!

数据处理及发布

我们的数据处理主要利用比赛方提供的GeoScene Pro进行数据的 存储  及发布。在ArcGIS中的数据及GP工具的发布我会单独写一篇文章。

  1. 数据发布至Server服务器 ,首先我们的GeoScene Pro需要链接至相应的服务器,如果自行搭建portal则是portal的链接,这个可以在软件中的许可位置进行修改没有相应的许可是不能使用软件的。
    这是M姐提供的服务,由于许可过期我先使用这个进行演示

        在共享中选择Web图层中发布Web图层即可将数据进行发布(前提是数据框里面有数据哦~)
    在这里插入图片描述

        在弹出的框中输入对应的参数,然后再点击分析,没有错误后就可以发送啦~
    在这里插入图片描述

        许可到期了,成功的截图我就不放了

图层发布后的查看

发布成功后,点击成功的 超链接  就可以跳转到如下图所示的界面:
在这里插入图片描述

   这个就是咱们发布的图层的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文件的两个comedisappear

   前面写的css我这里用了我们之前写好的css。。

js编写

首先肯定是要去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工具的发布和调用。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空