Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
Patrick Hammons
Haoliang Yu
Esri Koop: Using Third Party Data
Sources in ArcGIS
Agenda
• What is Koop?
• Request lifecycle and plugins
• Koop CLI
• Demo: building Koop app and provider
What is Koop?
A web server for on-the-fly transformation of geospatial
data
• Apache licensed: all components freely reusable
• Node.js/Express.js
• Components published with NPM package manager
• Plugin architecture
• Supports GeoServices spec: the ArcGIS Feature
Server API
Why the name ‘Koop’?
FBI Special Agent Dale Cooper
Koop-Server
Koop-ProviderPlugins
Conceptual Overview
Koop-OutputPlugins
AWS S3
Pro
SceneViewer
EarthOnline
JavaScriptAPI
Clients
When to use Koop
• You want to use data in ArcGIS clients
• Data format is tied to existing business application
• Data is controlled by a third party
• No existing SDE support
• Data delivery in multiple formats
Koop-Server
Koop-Providers
Demo
Online
ArcGIS
Koop-Outputs
AWS S3
Koop Demo
Anatomy of a Koop request
/craigslist/seattle/apartments/FeatureServer/0/query
/craigslist/:host/:id/FeatureServer/:layer/:method
Provider fragment Output fragment
Koop request lifecycle
ProviderOutput
Koop Server
Client Remote
API
GeoJSONAPI
dataEsri
JSON
Cache plugin
ProviderOutput
CacheKoop Server
Client Remote
API
Cache plugin
ProviderOutput
CacheKoop Server
Client Remote
API
Authorization Plugin
ProviderOutput Auth
Plugi
n
Koop Server
Client Remote
API
Koop CLI
A command line dev tool for Koop (Haoliang Yu)
• Generate boilerplate for Koop projects
• App and all plugin types
• Install plugins and automate plugin registration
• Create dev server (app/plugin)
• Watch mode
• Debug mode
https://github.com/koopjs/koop-cli
Commands
Try it out
• Build a Koop app
• Build a Koop provider
Build an app
Build a provider
1. Construct remote URL and make request to API
2. Translate result to GeoJSON and decorate with metadata
3. Fire callback with the GeoJSON
4. Handle any errors
Build a provider - research
Example: connecting to the Socrata API
host id filters
response formatThink about Koop’s URL: /provider/:host/:id/FeatureServer/:layer/:method
Build a provider - boilerplate
Use koop-cli to generate provider boilerplate
Build a provider – the getData method
Build a provider – construct remote URL
Build a provider – make remote request
Build a provider – translate to GeoJSON
Build a provider – translate to GeoJSON
Build a provider – translate to GeoJSON
Build a provider – add metadata
Build a provider – add metadata
https://koopjs.github.io/docs/usage/provider#setting-provider-metadata-in-
getdata
Build a provider – fire callback
Koop Road Map
• Provider
• AWS Athena, AGOL, AWS S3 Select++, Elasticsearch++
• Custome data transformation
• Data catalog
• Output
• Vector Tiles++, WMS++, WFS++
• More, better docsContribute!
Koop Resources
• Github: https://github.com/koopjs
• Documentation - https://koopjs.github.io
• Koop CLI
• Demo code
• @koopjs/provider-socrata
• koop-app-example
Print Your Certificate of Attendance
Print Stations Located in 150 Concourse Lobby
Tuesday12:30 pm – 6:30 pm
Expo
Hall B
5:15 pm – 6:30 pm
Expo Social
Hall B
Wednesday10:45 am – 5:15 pm
Expo
Hall B
6:30 pm – 9:30 pm
Networking Reception
Smithsonian National Museum
of Natural History
Download the Esri
Events app and find your event
Select the session
you attended
Scroll down to
“Survey”
Log in to access the
survey
Complete the survey
and select “Submit”
Please Share Your Feedback in the App