Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DRAFT: Issue for PR #16

Open
slibby opened this issue Apr 11, 2017 · 10 comments
Open

DRAFT: Issue for PR #16

slibby opened this issue Apr 11, 2017 · 10 comments

Comments

@slibby
Copy link
Collaborator

slibby commented Apr 11, 2017

What follows is draft text to be submitted along with an eventual PR to the upstream repository:

OpenStreetMap editing from ArcGIS Services

Goal

Anyone can easily contribute to OpenStreetMap with the iD editor using data extracted from an ArcGIS Map or Feature Service.

Background

Many Esri customers using ArcGIS are authoritative data creators and maintainers. In many areas, densely detailed user-submitted data is available in OpenStreetMap, but in many others, there is limited density of data even though easily-accessible authoritative data exists. Currently, to make use of these datasets OpenStreetMap contributors would need to export the ArcGIS Map Service to a Shapefile or PostGIS database and then use desktop tools such as JOSM to edit and upload to OpenStreetMap, or go through a lengthy import process to import a selected set of data which is not already available in OSM or which is more precise or more accurate than current OSM features.

This feature aims to make it easier for volunteers to add features queried from the Geoservices REST API to the popular iD web-based editor for OpenStreetMap. By connecting directly to the ArcGIS Service, contributors are getting the most up to date data and also can more easily contribute this data without need for complex workflows. The tool will also allow users to match up existing attributes (for example, house numbers on building footprints) to OSM tags to make adding authoritative attribution straighforward along with geometries.

Solution

This project will add the capability for contributors to select “Import Layer” and then provide the URL to an ArcGIS REST Service or Feature Layer (ex. http://maps2.dcgis.dc.gov/dcgis/rest/services/DCGIS_DATA/Transportation_WebMercator/MapServer/5). The iD editor will load the vector features of the current map extent as temporary objects in the browser window (not submitted as edits to OSM). At load, the contributor will be able to specify whether specific attributes should be mapped from the source layer to specific OSM tags, or whether any other static tags should be added across all features.

The contributor can then select objects generated from the ArcGIS Layer, inspect and alter any tag values or geometries and submit them as edits to OSM (additions or replacements for features). They can then save their changeset, contributign these new objects to OpenStreetMap via iD's existing functions.

Implementation

Code will be developed using a branch from the iD GitHub repository. This project will implement a D3 rendering layer using the ArcGIS Geoservices REST API. This could use the prototype Esri D3 Layer project.

  • Esri feature service and map services with vector data can be added as background data in iD (similar to GPX or tile backgrounds)
  • Esri services' data are made interactive (can view attributes table on the left side of iD by selecting a feature, similar to OSM layer)
  • Esri service layer and OSM layer geometry link - clicking one shows attributes from the other
  • UI for providing an Esri Feature Layer URL or selecting a feature layer from a provided Map Service URL
  • UI for building a transformation of attributes to OSM tags
  • Testing real world edits using the OSM API / iD's edit saving and resolution system
  • Pull Request submitted and merged to the iD GitHub project
  • iD version deployed to OpenStreetMap.org

Follow on concepts

In success of this project, there are several potential projects which could use this work:

  • Embed iD editor into ArcGIS Open Data so that governments create call to action for their citizens to use their community open data to work with OSM
  • Embed functionality into the JSAPI and Esri-Leaflet for inclusion in Application Templates
@jgravois
Copy link
Collaborator

from iD's CONTRIBUTING doc:

it helps the maintainers if you first open an issue to ask whether an idea makes sense, instead of surprising us with a pull request.

have we given any indication to anyone on the iD team that we plan on proposing this new feature? it'd be good form to follow their guideline and submit a condensed version of the copy above that explains:

  1. what the new feature will enable
  2. steps we've taken to ensure that editors investigate the licenses of sources prior to import
  3. steps we've taken to ensure that individual features are QAed prior to being included in changesets.

@slibby/@mapmeld are you interested and available to do this soon? if not, i'm happy to help with it.

@slibby
Copy link
Collaborator Author

slibby commented Jul 19, 2017

@jgravois I can submit an issue

@slibby
Copy link
Collaborator Author

slibby commented Jul 19, 2017

Edited Issue Text for submitting to openstreetmap/id repository. what do you think @jgravois @mapmeld :

Issue Title: Creating OSM Features in iD from ArcGIS Services

The Goal

Anyone can easily contribute to OpenStreetMap with the iD editor using authoritative and vetted data extracted from an ArcGIS Map or Feature Service.

Background

Many Esri customers using ArcGIS are authoritative data creators and maintainers. In many areas, densely detailed user-submitted data is available in OpenStreetMap, but in many others, there is limited density of data even though easily-accessible authoritative data exists. Currently, to make use of these datasets OpenStreetMap contributors would need to export the ArcGIS Map Service to a Shapefile or PostGIS database and then use desktop tools such as JOSM to edit and upload to OpenStreetMap, or go through a lengthy import process to import a selected set of data which is not already available in OSM or which is more precise or more accurate than current OSM features.

This feature aims to make it easier for volunteers to add features queried from the GeoServices REST API (ArcGIS Server Map Services and Feature Services) to OpenStreetMap using iD. By connecting directly to the ArcGIS Service form an iD session, contributors are getting the most up to date data and also can more easily contribute this data without need for complex workflows. The tool will also allow users to match up existing attributes from the source data (for example, house numbers on building footprints) to relevant OSM tags to make adding authoritative attribution straighforward along with geometries.

Solution

This feature will add the capability for contributors to select “Add GeoService Layer” and then provide the URL to an ArcGIS REST Service or Feature Layer (ex. http://maps2.dcgis.dc.gov/dcgis/rest/services/DCGIS_DATA/Transportation_WebMercator/MapServer/5). Before loading, the contributor will be able to specify whether specific attributes should be mapped from the source layer to specific OSM tags, or whether any other static tags should be added across all features. The iD editor will load the vector features of the current map extent as temporary objects in the browser window (not immediately submitted as edits to OSM).

The contributor can then select objects generated from the ArcGIS Layer, inspect and alter any tag values or geometries and submit them as edits to OSM (additions or replacements for features). They can then save their changeset, contributing these new objects to OpenStreetMap via iD's existing functions.

Implementation

Code has already be developed using a branch from the iD GitHub repository and is nearing readiness for submitting a PR to the master iD branch. This issue serves to introduce the concept and ask for some discussion from the primary iD maintainers before submitting a PR (as requested in Contributing.md).

@mapmeld
Copy link
Owner

mapmeld commented Jul 20, 2017

@slibby sounds good to me :shipit:

@slibby
Copy link
Collaborator Author

slibby commented Jul 20, 2017

added issue to /iD master

@jgravois
Copy link
Collaborator

excellent!

@jgravois
Copy link
Collaborator

@mapmeld if you're comfortable with it, bryan said in slack that he's ready to move the discussion into a PR to widen the collaboration circle a bit.

obviously we want to incorporate as much of the great feedback as possible, but we'll also have to try hard to limit scope and sift through what is a must for a v1 from features that are better placed further down the roadmap.

@mapmeld
Copy link
Owner

mapmeld commented Jul 26, 2017

Is this an iD Slack? I need to get into more Slacks.

I would be OK with at a pull request, but I'm unsure of timeline, especially since it is so easy to test on our own platforms before going mainstream.

We're about to find out (in the next week) if we get to talk about this at SOTMUS.

@jgravois
Copy link
Collaborator

Is this an iD Slack?

http://thespatialcommunity.org/ (#openstreetmap channel)

We're about to find out (in the next week) if we get to talk about this at SOTMUS.

🤞

@slibby
Copy link
Collaborator Author

slibby commented Dec 27, 2017

GIFs for demonstration:

Add new service and confirm license:
add_new_service

Add Existing service:
add_existing_service

Map Attributes to tags and import in view:
map_attributes2

Review and approve features:
review_and_approve_features5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants