本文内容
- 导入包含inputs, outputs, GeoEvent Definitions和GeoEvent Services的GeoEvent产品配置文件
- 讨论注册并使用ArcGIS Server管理的地理数据库的优势
- 阐述如何将map package发布为feature service
- 配置GeoEvent Service,向已发布的feature service中添加或更新要素
- 向ArcGIS Online中添加已发布的feature service
- 使用Operation Dashboard for ArcGIS可视化实时数据
开始
使用xml配置文件完成环境搭建,快速开始本节的练习
Module2 - Quick Start配置文件的内容:
- 一个使用5565 TCP端口的名为tcp-text-in的input
- 名为tcp-text-out和file-out的output分别通过TCP和system file I/O输出事件数据
- 名为Flights的GeoEvent Service,用于整合input和output
- 名为GeoEvent_Input和GeoEvent_Output的两个注册系统文件夹
导入配置文件xml会创建以上项,如果已有同名项存在,则会覆盖它们。
按照以下操作导入配置文件:
- 打开GeoEvent Manager
- 进入Site>GeoEvent>Configuration Store
- 点击Reset Configuration按钮(将会删除所有之前创建的组件)
- 点击Import Configuration并进入到Module2_QuickStart.xml的文件目录
- 选择Module2_QuickStart.xml文件并选择Import Configuration选项
- 点击Import导入配置文件中的所有项
- 在GeoEvent Manager中,进入Services>Monitor
- 点击箭头开始运行tcp-text-in input
在运行tcp-text-out output之前需要先运行TCP Server应用脚本
- 打开TCP Server应用
- 在GeoEvent Manager中,点击箭头开始运行tcp-text-out output
- 确认output运行成功,注意TCP Server中的信息
使用Features和Feature Services
为了实现在feature service中更新features,我们必须让服务具备feature access能力。我们需要让服务的数据存放在企业级数据库中。
为ArcGIS Server注册企业级数据库
什么是企业级数据库?
ArcGIS的企业级数据库是存放多种类型地理数据集集合的多用户的关系型数据管理系统。例如Oracle, Microsoft SQL Server, PostgreSQL, Informix和IBM DB2。
如何创建企业级数据库?
具体参考官方帮助
以下介绍如何验证是否成功为ArcGIS Server注册数据库
- 在浏览器中,打开ArcGIS Server Manager并使用PSA账户证书登录
- 在Server Manager中,进入Site>GIS Server>Data Store
- 点击Validata All按钮验证站点可以连接到注册的Managed数据库
需要注意的是postgresql会将属性字段名改为小写,这会影响到正常的使用
发布map packages
ArcGIS map packages可以方便的提供map content和图层符号系统。
- 打开Windows File Explorer
- 进入..\data\MakingFeaturesComeAlive文件夹
- 在ArcMap中打开Flights.mpk。地图内容将会被解压到用户下的..\Documents\ArcGIS\Packages文件夹下
- 在ArcMap中,点击File并选择Share As>Service
- 选择Publish a service选项,点击Next
- 在下拉列表中选择要连接的ArcGIS Server
- 点击Next接受默认的服务名称Flights
- 选择Create new folder并输入GeoEvent,点击Continue
- 在Service Editor菜单中,点击Capabilities,取消选中KML,选中Feature Access复选框
- 点击Analyze查找是否有潜在错误和问题
- 点击Publish发布feature service
- 将数据复制到服务器管理的企业级数据库中
- 点击OK完成发布
将feature services加入web maps
- 打开浏览器进入http://www.arcgis.com/
- 使用ArcGIS Online for Organizations账户登录并进入My Content
- 点击create创建新的项目创建新的web map
- 输入title, tags以及description
- 点击Add选择Add Layer from Web
- 输入我们发布的要素服务的URL
- 复制服务地址
- 在Add Layer from Web对话框中粘贴URL
- 点击Add Layer将feature layer添加到web map中
- 点击Save保存web map
- 在ArcGIS Web Map中,移动鼠标到HOME上并点击My Content
在Operations Dashboard for ArcGIS中创建一个operation view
operations dashboard为组织提供了一种监控活动和事件,追踪现场工作并评估日常工作表现的方式。
使用Operations Dashboard之前,必须拥有一个能登录到ArcGIS Online for Organizations或Portal for ArcGIS的named user账户。
- 打开Operations Dashboard
- 点击Continue输入ArcGIS Online for Organizations URL或Portal for ArcGIS URL。
- 使用named user证书登录
- 点击Create a New Operation View
- 选择Multi-display operation view并点击Create
- 选择添加Map微件并点击OK
- 选择早期设计并发布的Flights Web Map
- 点击Open
4.从Configure Map>Settings中,点击Data Sources选项卡
5.选中Flights要素图层
6.点击Capabilities选项卡选中需要的能力
7.点击OK保存map微件
8.进入到Operations Dashboard顶部的主菜单栏
9.点击WIDGETS选择Refresh Settings
10.在Refresh Interval对话框中:
- 点击Refresh type下拉框选择use a single interval to update data sources
- 点击Modify改变刷新间隔为1秒
11.点击Close关闭Refresh Interval对话框
12.在Operations Dashboard的右上角,点击map微件的Settings并选择Configure
13.确认map微件的Flights图层的数据源被设置为Dynamic
14.点击OK接受Data Sources map widget的设置
15.在Operations Dashboard主菜单中,点击TOOLS并点击Save,输入标题,概述,描述等。
16.在ArcGIS Online for Organizations账户中,如果刷新My Content页面,你会看到一个叫做Flights Operation View的新项
让要素实时变化起来
这个练习中,我们将使用ArcGIS GeoEvent Manager创建一个新的GeoEvent Service,使用GeoEvent Simulator模拟一个事件流,观察ArcGIS GeoEvent Extension for Server是如何更新feature service的要素的。
为你的ouput导入一个GeoEvent Definition
- 在GeoEvent Manager中,进入Site>GeoEvent>GeoEvent Definitions
- 点击Import GeoEvent Definitions指定以下属性
- 点击Import导入与Flights要素图层匹配的GeoEvent Definition
- 在GeoEvent Manager中,进入Site>GeoEvent>GeoEvent Definitions并打开Flights GeoEvent Definition
- 在GeoEvent Manager中,进入Site>GeoEvent>GeoEvent Definitions并点击粘贴复制导入的GeoEvent Definition
- 在打开的GeoEvent Definition对话框中,注意到FlightNumber, StartTime,以及Geometry attribute字段仍然保持着原来的字段标签
- 在GeoEvent Definition对话框中,输入Flights-TcpTextIn作为新的GeoEvent Definition的名字
- 点击New Field添加一个名为Longitude的Double类型的字段
- 点击New Field添加另一个名为Latitude的Double类型的字段
- 点击编辑字段标记GEOMETRY,重命名为Location
- 点击Reorder Fields并使用箭头按钮将Geometry字段移动到事件属性字段列表的底部
- 点击Save保存更新后的GeoEvent Definition
重新配置tcp-text-in input
- 在GeoEvent Manager,进入Services>Inputs并点击tcp-text-in编辑input
- 更改以下属性
- 更改Incoming Data Contains GeoEvent Definition属性为No
- 改变Create Fixed GeoEvent Definitions属性为No
- 指定使用已存在的名为Flights-TcpTextIn的GeoEvent Definition
- 改变Construct Geometry From Fields属性为Yes
- 指定X Geometry Field数据值为事件中的Longitude字段
- 指定Y Geometry Field数据值为事件中的Latitude字段
- 点击Save保存对tcp-text-in input的编辑
- 打开GeoEvent Simulator并使用FeatureFlights.csv文件作为数据源
- 在GeoEvent Manager中,启动Flights GeoEvent Service, tcp-text-in input, tcp-text-out和file-out
- 开始模拟飞行数据事件
重新配置Flights GeoEvent Service
- 在GeoEvent Manager,进入Services>GeoEvent Services并点击编辑Flights GeoEvent Service
- 双击Processor为GeoEvent Service添加一个新的处理器
- 按照下图所示配置新的处理器的属性
- 点击OK创建新的Field Mapper处理器
- 按照下图修改Flights GeoEvent Service并点击Publish
- 在GeoEvent Simulator中点击Step发送一个事件
注意到原先的经纬度信息没有在TCP Server端中出现
- 在GeoEvent Manager中,进入Services>Outputs并点击Add Output
- 在搜索框中输入feature关键字并点击Search
- 点击Select按钮选择Update a Feature output连接器
- 按照下图属性配置新的ouput
- 点击Save保存新的output
- 在GeoEvent Manager中,进入Services>GeoEvent Services并点击编辑Flights服务
- 双击fs-out output加入到canvas上
- 按照下图所示修改Flights GeoEvent Service并点击Publish
- 进入Services>Monitor页面并点击Reset Statistics
- 在GeoEvent Simulator中,点击Step一次发送一个数据事件
此时进入ArcGIS Server 服务中可以看到新增了要素
使用Operations Dashboard for ArcGIS查看要素更新
- 打开Operations Dashboard并使用账号登录
- 双击打开Flight Monitor界面
- 开始启动事件模拟,当数据全部运行完毕,在图上点击要素查看信息
- 点击Stop并关闭GeoEvent Simulator