mapmeld / iD

Developing GeoServices tool for OSM iD Editor
http://mapmeld.com/iD
ISC License
7 stars 1 forks source link

DRAFT: Issue for PR #16

Open slibby opened 7 years ago

slibby commented 7 years ago

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.

Follow on concepts

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

jgravois commented 7 years ago

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 commented 7 years ago

@jgravois I can submit an issue

slibby commented 7 years ago

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 commented 7 years ago

@slibby sounds good to me :shipit:

slibby commented 7 years ago

added issue to /iD master

jgravois commented 7 years ago

excellent!

jgravois commented 7 years ago

@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 commented 7 years ago

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 commented 7 years ago

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.

:crossed_fingers:

slibby commented 6 years ago

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