Webappbuilder开发快速预览

by 李远祥

Webappbuilder for ArcGIS 是由ArcGIS JavaScripit API和dojo创建的,它允许通过创建自己的widget和主题来扩展其功能。

1.      了解widgets(微件),panels(面板)和themes(主题)

Widget

微件是一系列的text文件,可以在webappbuilder的应用中共享、移动和分发。

微件可以是单个符合AMD模型的JavaScript文件或者是编译好的AMD包,像Dojo的包一样。上图是微件的结构,包含一个模板、配置文件、央视文件和国际化支持。

通常情况下,微件被单独封装在一个分离或特定的业务逻辑中,一个微件不仅可以与用户视觉上互动,也可以连接到ArcGIS Portal和ArcGIS Online中获服务器端地图和数据资源。

Widget必须扩展BaseWidget 类(BaseWidget.js),通过扩展BaseWidget类,产生一个新的JavaScript类会由Web Appbuilder 的WidgetManager 作为一个可部署的插件。

2.      Panel(面板)

Panel是一个UI元素,用于显示widget的内容。复杂的微件可以在一个panel中展示出来。通过使用Panel板,Widget开发者不需要处理微件及其内容(数据)如何在HTML查看器显示。然而,微件开发人员可以选择不使用所提供的面板(更多的细节,见小微件开发部分)。例如,比例尺微件都有自己独特的用户界面。

您可以修改或创建新的panel,以获得新的功能,例如使微件可以移动和拖拽。

3.      Theme(主题)

主题是由Web AppBuilder创建的Web应用所定义的界面。主题定义了以下内容:

l  如何通过微件布局主题面板

l  颜色、字体、界面样式等方案

l  微件在viewer中的位置

Web AppBuilder开发者需要掌握的软件和技巧

开发人员需要足够的HTML和JavaScript开发Web应用程序的知识和经验

Dojo是WebAppBuilder和ArcGIS JavaScript API的基础平台

使用Web AppBuilder去开发微件,需要熟悉ArcGIS JavaScript API,至少要熟悉由Esri官网上提供的代码实例。

尽管开发的环境只需要基础的文本编辑器、标准兼容的web浏览器和网络连接,但还是推荐使用一些有效的开发工具:

  • Sublime or Aptana Studio IDE
  • Chrome (最新版)
  • Firefox (最新版) with the Firebug plug-in

4.      可参考的资源

可以参考以下的资源网站

最新文章

  1. web.xml中url-pattern的用法
  2. Ext3文件系统及JDB介绍
  3. Netty Client重连实现
  4. FZU 2184 逆序数还原
  5. Kafka实战系列--Kafka API使用体验
  6. ubuntu Screen 的比较详细的命令
  7. 《深入Linux内核》 UNIX的一些故事
  8. python核心编程-第四章-习题
  9. 队列工厂之RedisMQ
  10. pyinstaller生成exe文件失败
  11. 华为6.0系统设备最完美激活Xposed框架的经验
  12. hinernate-实体对象的3种状态
  13. 初始Ajax
  14. 08.vue中样式-class
  15. 【BZOJ4822】[CQOI2017]老C的任务(扫描线)
  16. 一个servlet处理多个请求或者叫方法
  17. vue监听路由变化
  18. 在已有Windows系统基础上安装ubuntu后无Windows启动项
  19. Vue + Element UI 实现权限管理系统 前端篇(三):工具模块封装
  20. 4、注解反射生成SQL语句

热门文章

  1. CollectionView中deleteItems方法的使用
  2. Mac上ssh无法登录的问题
  3. 【iScroll源码学习01】准备阶段 - 叶小钗
  4. HUST 1602 Substring
  5. 用OpenSSL生成自签名证书在IIS上搭建Https站点(用于iOS的https访问)
  6. asp.net-mvc验证码 asp.net-mvc c#验证码
  7. iOS开发——打电话
  8. 《C程序设计语言》读书笔记----习题1-20
  9. iOS搜索框UISearchBar
  10. Unknown/unsupported storage engine: InnoDB