You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#7510 added support for WMS tokens like bbox, height, and proj in custom backgrounds. This extends the custom background feature to be compatible with ArcGIS MapServers and ImageServers. However, for custom map data URL templates, iD only supports TMS and quadkey tokens and output in Mapbox Vector Tile format. It should also support WMS tokens and ArcGIS server JSON to make the feature compatible with more existing data sources.
The idea is merely to load ArcGIS FeatureServer layers in the same way that custom map data can already be loaded into iD: as a reference layer rather than a way to directly add data to OSM. I think further streamlining the workflow would be out of scope for this issue.
Rationale
The code for resolving URL templates should be shared between the custom background and custom map data modules to improve code coverage and consistency.
Basic WMS support can be seen as a baby step compared to the full ArcGIS FeatureServer integration proposed in #4164, but I think there is value in just getting WMS support to parity with the existing support for TMS and local files. The U.S. mapping community has discovered many appropriately licensed sources of aerial imagery from local government agencies; these sources have been a key ingredient in promoting local community involvement. But many of these agencies also provide non-imagery layers that we’ve yet to tap into, even in a bespoke, manual mapping workflow.
For example, an Ohio state agency provides a FeatureServer containing public domain address points for most of the state. Even though I’m not planning an automated import of this address data in the near future, I would like to be able to quickly look up the address of an individual building as I manually map it, since it would be nice to have this one address in the meantime, and my manual edit will make the building less likely to be included in an initial phase of a future building+address import. The same dataset comes with a MapServer, but it doesn’t label the address points and doesn’t have dynamic layers enabled, so I’m forced to fire up JOSM to load the FeatureServer. By comparison, a similar MapServer in Silicon Valley has saved us countless hours of manual hunting in our POI import there, but only because it was correctly styled with labels in the first place.
Beyond addresses, I’ve also come across other public domain FeatureServers that contain information like road names, speed limits, and boundaries that would be useful as a reference but not as an import source. I would like to be able to add unwieldy URLs for these FeatureServers to our local wiki page as resources for mappers who understand the difference between OSM tagging and the attributes in these FeatureServers but who are unlikely to use JOSM or QGIS as part of their day-to-day workflow.
Implementation notes
The custom background code contains a large chunk of code dedicated to URL template resolution:
I suspect the two code paths were originally mostly identical but diverged over time because there was more interest around custom backgrounds. We could factor out the custom background version into util.js for now; while it would be tempting to write a whole module for tile sources, there’s still a lot of functionality that doesn’t overlap between background_source.js and vector_tile.js.
The custom map data module currently supports local files in GPX, KML, and GeoJSON formats and tile servers in Mapbox Vector Tile format via togeojson. Every FeatureServer I’ve come across supports JSON formatted output for query operations, but it isn’t GeoJSON that iD expects from local JSON files. ArcGIS Server 10.4 and above can also output GeoJSON and KMZ. Maybe we could start by hooking up GeoJSON support, but I don’t think we can count on most FeatureServer endpoints allowing that output format. (For example, the address point FeatureServer mentioned above only outputs ArcGIS feature JSON.)
The text was updated successfully, but these errors were encountered:
#7510 added support for WMS tokens like
bbox
,height
, andproj
in custom backgrounds. This extends the custom background feature to be compatible with ArcGIS MapServers and ImageServers. However, for custom map data URL templates, iD only supports TMS and quadkey tokens and output in Mapbox Vector Tile format. It should also support WMS tokens and ArcGIS server JSON to make the feature compatible with more existing data sources.The idea is merely to load ArcGIS FeatureServer layers in the same way that custom map data can already be loaded into iD: as a reference layer rather than a way to directly add data to OSM. I think further streamlining the workflow would be out of scope for this issue.
Rationale
The code for resolving URL templates should be shared between the custom background and custom map data modules to improve code coverage and consistency.
Basic WMS support can be seen as a baby step compared to the full ArcGIS FeatureServer integration proposed in #4164, but I think there is value in just getting WMS support to parity with the existing support for TMS and local files. The U.S. mapping community has discovered many appropriately licensed sources of aerial imagery from local government agencies; these sources have been a key ingredient in promoting local community involvement. But many of these agencies also provide non-imagery layers that we’ve yet to tap into, even in a bespoke, manual mapping workflow.
For example, an Ohio state agency provides a FeatureServer containing public domain address points for most of the state. Even though I’m not planning an automated import of this address data in the near future, I would like to be able to quickly look up the address of an individual building as I manually map it, since it would be nice to have this one address in the meantime, and my manual edit will make the building less likely to be included in an initial phase of a future building+address import. The same dataset comes with a MapServer, but it doesn’t label the address points and doesn’t have dynamic layers enabled, so I’m forced to fire up JOSM to load the FeatureServer. By comparison, a similar MapServer in Silicon Valley has saved us countless hours of manual hunting in our POI import there, but only because it was correctly styled with labels in the first place.
Beyond addresses, I’ve also come across other public domain FeatureServers that contain information like road names, speed limits, and boundaries that would be useful as a reference but not as an import source. I would like to be able to add unwieldy URLs for these FeatureServers to our local wiki page as resources for mappers who understand the difference between OSM tagging and the attributes in these FeatureServers but who are unlikely to use JOSM or QGIS as part of their day-to-day workflow.
Implementation notes
The custom background code contains a large chunk of code dedicated to URL template resolution:
iD/modules/renderer/background_source.js
Lines 113 to 228 in 2803cd7
By comparison, the custom map data code has much simpler code to resolve URL templates:
iD/modules/services/vector_tile.js
Lines 98 to 107 in 2803cd7
I suspect the two code paths were originally mostly identical but diverged over time because there was more interest around custom backgrounds. We could factor out the custom background version into util.js for now; while it would be tempting to write a whole module for tile sources, there’s still a lot of functionality that doesn’t overlap between background_source.js and vector_tile.js.
The custom map data module currently supports local files in GPX, KML, and GeoJSON formats and tile servers in Mapbox Vector Tile format via togeojson. Every FeatureServer I’ve come across supports JSON formatted output for query operations, but it isn’t GeoJSON that iD expects from local JSON files. ArcGIS Server 10.4 and above can also output GeoJSON and KMZ. Maybe we could start by hooking up GeoJSON support, but I don’t think we can count on most FeatureServer endpoints allowing that output format. (For example, the address point FeatureServer mentioned above only outputs ArcGIS feature JSON.)
The text was updated successfully, but these errors were encountered: