ArcGIS地理平台开发基础(附练习代码)
分享
1.Portal for ArcGIS 定制开发
Portal for ArcGIS主要有两种定制方法,一种是基础定制,是由portal提供的,面向系统管理员。另一种就是高级定制,面向开发人员,主要利用Portal REST API进行定制开发。
基础定制是在原生portal网页中自定义其主题、背景图片等常规设置。
高级定制要掌握Portal for ArcGIS,根据需求,利用Portal REST API进行扩展开发。第一要有语言基础,如果对网站UI进行定制修改,html、css和javascript肯定是必须的,如果还要进行功能扩展,那就用到后台语言,java或C#或其他,根据自己需求而定。除了语言之外,我们还要熟悉掌握portal, 一要了解它的技术架构,portal前端采用的是dojo架构,后台是java实现的,多源数据是通过postgresql和文件关联的方式管理,最重要的一点我们要熟悉功能,并探究它的实现过程。最简单的方法就是浏览器网络监控,从网络监控了解熟悉rest api。
2.Portal REST API简介
Portal REST API 入口:
REST API入口地址: https://域名/arcgis/sharing/
管理员REST API入口地址:https://域名/arcgis/portaladmin
先看一下接口的文档介绍。 community、content、portals
我们总结一下:Generate Token接口 用于生成token,使用token去请求资源。对于token,就像是仓库里的钥匙,只有获得了token,才能进入Portal中去拿到资源。
Search接口,用于搜索资源,Community里的接口关于用户、群组的操作,Content里的接口用于资源内容的操作,包括我的内容中文件夹的操作
Portal REST API的主要内容,就是Portal for ArcGIS这个产品前端页面的所有功能。 因为,前端页面就是调用Portal REST API开发出来的,只不过是Esri的工程师开发的,而不是我们开发的。
如果你愿意投入时间和精力,你也可以做出来一个一模一样,甚至更好的产品! 这就是 我们后面要讲的 定制开发的工作内容。
3.开发环境搭建
推荐的框架组合是Bootstrap+jQuery+RequireJS。(附源码)
4. 简单实例(附源码)
(1) 获取token
· 第一步:按照上面的开发框架搭建步骤搭建一个项目:PortalRestApiDemo。(或者复制练习数据中的框架文件夹下的FrontEndFrame文件夹,粘贴,改一个名字:PortalRestApiDemo)
· 第二步:在application目录下新建文件夹demoFiles用于放置html页面。
· 第三步:在widgets目录下新建文件夹portalRestApi用于放置API的功能模块。
(1)、获取token
· 1)新建模块 generateToken.js,用于编写获取token的逻辑代码
上面说了 一个js文件就是一个模块, 那么这个 generateToken.js 模块 的作用是什么呢? 根据名字看出是为了获取token的。 没错,将获得token的代码封装成了一个模块,调用的时候简单方便,只需传入几个简单的参数就ok了。
· A.Portal REST API中Generate Token的URL参数要求:
B.Portal RST API中Generate Token的Request参数要求:
C. Portal REST API中Generate Token的Response参数,用于解析数据:
· 2)新建generateToken.html,在页面上显示token的值
(2) 获取Portal自身的基本信息
1)新建模块getPortalInfo.js,按照Portal API的文档目录构建目录,放置模块。
2)新建getPortalInfo.html页面
第一个练习完成后,这个练习完成起来就会比较简单,同样是再调一次接口,只不过接口地址不同,参数不同而已,流程上都是一样的。
(3) 获取用户、组织、群组、item信息
这里仅以item为例。[当然涉及item的增删改查操作完全可以在一个模块里面编写,比如itemOperation.js ,里面有item的增删改查方法。]
1)新建模块getItemInfo.js
2)新建getItemInfo.html页面
(4) Portal中新建一个文件夹
涉及文件夹的增删改查操作完全可以在一个模块里面编写,比如folderOperation.js ,里面有文件夹的增删改查方法。
1)新建模块folderOperation.js
2)新建createFolder.html页面
(5) 综合案例-新闻管理
· 新闻管理的功能(主要是4个):
· 新闻列表
· 增加新闻
· 删除新闻
· 更新新闻(这个留个大家实践)
· 当然还有新闻详情,这个可以自己扩展
· 思路:
· 把新闻当做item存到Portal中去
· 涉及到的接口:
· Search
· Add Item
· Delete Item
· Update Item
=========================================
代码下载:
Portal for ArcGIS主要有两种定制方法,一种是基础定制,是由portal提供的,面向系统管理员。另一种就是高级定制,面向开发人员,主要利用Portal REST API进行定制开发。
基础定制是在原生portal网页中自定义其主题、背景图片等常规设置。
高级定制要掌握Portal for ArcGIS,根据需求,利用Portal REST API进行扩展开发。第一要有语言基础,如果对网站UI进行定制修改,html、css和javascript肯定是必须的,如果还要进行功能扩展,那就用到后台语言,java或C#或其他,根据自己需求而定。除了语言之外,我们还要熟悉掌握portal, 一要了解它的技术架构,portal前端采用的是dojo架构,后台是java实现的,多源数据是通过postgresql和文件关联的方式管理,最重要的一点我们要熟悉功能,并探究它的实现过程。最简单的方法就是浏览器网络监控,从网络监控了解熟悉rest api。
2.Portal REST API简介
Portal REST API 入口:
REST API入口地址: https://域名/arcgis/sharing/
管理员REST API入口地址:https://域名/arcgis/portaladmin
先看一下接口的文档介绍。 community、content、portals
我们总结一下:Generate Token接口 用于生成token,使用token去请求资源。对于token,就像是仓库里的钥匙,只有获得了token,才能进入Portal中去拿到资源。
Search接口,用于搜索资源,Community里的接口关于用户、群组的操作,Content里的接口用于资源内容的操作,包括我的内容中文件夹的操作
Portal REST API的主要内容,就是Portal for ArcGIS这个产品前端页面的所有功能。 因为,前端页面就是调用Portal REST API开发出来的,只不过是Esri的工程师开发的,而不是我们开发的。
如果你愿意投入时间和精力,你也可以做出来一个一模一样,甚至更好的产品! 这就是 我们后面要讲的 定制开发的工作内容。
3.开发环境搭建
推荐的框架组合是Bootstrap+jQuery+RequireJS。(附源码)
4. 简单实例(附源码)
(1) 获取token
· 第一步:按照上面的开发框架搭建步骤搭建一个项目:PortalRestApiDemo。(或者复制练习数据中的框架文件夹下的FrontEndFrame文件夹,粘贴,改一个名字:PortalRestApiDemo)
· 第二步:在application目录下新建文件夹demoFiles用于放置html页面。
· 第三步:在widgets目录下新建文件夹portalRestApi用于放置API的功能模块。
(1)、获取token
· 1)新建模块 generateToken.js,用于编写获取token的逻辑代码
上面说了 一个js文件就是一个模块, 那么这个 generateToken.js 模块 的作用是什么呢? 根据名字看出是为了获取token的。 没错,将获得token的代码封装成了一个模块,调用的时候简单方便,只需传入几个简单的参数就ok了。
· A.Portal REST API中Generate Token的URL参数要求:
B.Portal RST API中Generate Token的Request参数要求:
C. Portal REST API中Generate Token的Response参数,用于解析数据:
· 2)新建generateToken.html,在页面上显示token的值
(2) 获取Portal自身的基本信息
1)新建模块getPortalInfo.js,按照Portal API的文档目录构建目录,放置模块。
2)新建getPortalInfo.html页面
第一个练习完成后,这个练习完成起来就会比较简单,同样是再调一次接口,只不过接口地址不同,参数不同而已,流程上都是一样的。
(3) 获取用户、组织、群组、item信息
这里仅以item为例。[当然涉及item的增删改查操作完全可以在一个模块里面编写,比如itemOperation.js ,里面有item的增删改查方法。]
1)新建模块getItemInfo.js
2)新建getItemInfo.html页面
(4) Portal中新建一个文件夹
涉及文件夹的增删改查操作完全可以在一个模块里面编写,比如folderOperation.js ,里面有文件夹的增删改查方法。
1)新建模块folderOperation.js
2)新建createFolder.html页面
(5) 综合案例-新闻管理
· 新闻管理的功能(主要是4个):
· 新闻列表
· 增加新闻
· 删除新闻
· 更新新闻(这个留个大家实践)
· 当然还有新闻详情,这个可以自己扩展
· 思路:
· 把新闻当做item存到Portal中去
· 涉及到的接口:
· Search
· Add Item
· Delete Item
· Update Item
=========================================
代码下载:
0 个评论
相关问题
- 如何优雅的使用ArcGIS知乎?
- 建设ArcGIS知乎平台的目和意义?
- gis开发群的管理不讲理,求围观。
- ArcGIS知乎社区改进意见征集
- 【抽奖结果已出】ArcGIS知乎社区活动 之 你不知道的地理空间革命【转发分享有奖】【附奖品寄送照片】
- 苹果系统下可以使用arcgis 吗?
- 请问ArcGIS适合在局域网内用javaweb做二次开发吗?
- arcgis版本兼容性
- ArcGIS 知乎社区活动 之 字幕组加鸡腿暨KBP字幕组招新【获奖名单公布与优秀作品展示】
- 请问大神们,怎么用ArcGIS做城镇间经济联系强度的图?
- 在Visual studio 2015 中使用 Arcgis API for JavaScript v3.16 如何实现代码智能提示?