Riverscapes / RaveAddIn

RAVE AddIn for ArcGIS
http://rave.riverscapes.xyz/
GNU General Public License v3.0
1 stars 3 forks source link

Context Web Mapping Layers #6

Closed philipbaileynar closed 4 years ago

philipbaileynar commented 4 years ago

@joewheaton has identified several really useful National Map web mapping layers for the United States. They include layers like USGS topo maps, NAIP imagery, contours etc. Several similar services are available in other countries, such as New Zealand.

Rather than require users to include the relevant web mapping service URLs in each and every riverscapes project (where they could get out of date and break), @joewheaton and I came up with the idea of baking this into RAVE as a new feature.

The goal is to make it easy for RAVE users to add popular web mapping service base layers to any map.

  1. Within the RAVE software options user interface (new screen needed), users will be able to select a "jurisdiction" that they are working in. Typically this will be a country ("United States" or "New Zealand") but the concept is flexible.
  2. RAVE will ship with a new XML file called context_layers.xml, that lists all the relevant web map services by jurisdiction. The XML will be structured in a similar way to the RAVE business logic, allowing the user to organize the layers in a customizable hierarchy (see below). It's the jurisdictions in this XML file that will appear in the dropdown described in the previous bullet.
  3. When the user has the "context layers" option turned on and they have selected a jurisdiction, a permanent node will be added into the RAVE explorer tree showing all the web mapping services for the selected jurisdiction (see mockup below).
  4. We could allow users to extend the available context web mapping layers with their own XML in their %APPDATA% folder, a bit like we do with symbology and business logic.

The context layers XML might look something like the following. Note how the New Zealand URLs require an API key to be inserted into the XML and so we will need a method for doing this, probably with a key value pair user interface in the software settings for search and replace when the URL is applied.

<Jurisdictions>
    <Jurisdiction name="United States">
        <DisplayGroup name="Topography">
            <Item name="USGS Topo Map" url="https://basemap.nationalmap.gov:443/arcgis/services/USGSTopo/MapServer/WmsServer?" />
            <Item name="Shaded Relief" url="https://basemap.nationalmap.gov:443/arcgis/services/USGSHydroCached/MapServer/WmsServer?" />>
        </DisplayGroup>
        <DisplayGroup name="Hydrography">
            <Item name="NHD" url="https://basemap.nationalmap.gov:443/arcgis/services/USGSHydroCached/MapServer/WmsServer?"/>
        </DisplayGroup>
        <DisplayGroup name="Themed Overlays">
            <Item name="Transportation" url="https://carto.nationalmap.gov:443/arcgis/services/transportation/MapServer/WmsServer?"/>
        </DisplayGroup>
    </Jurisdiction>
    <Jurisdiction name="New Zealand"></Jurisdiction>
        <DisplayGroup name="Aerial Imagery">
            <DisplayGroup name="North Island">
                <Item name="Waikato 0.5m Rural Aerial Photos" url="https://data.linz.govt.nz/services;key=YOUR_API_TOKEN/wmts/1.0.0/layer/51872/WMTSCapabilities.xml"/>
            </DisplayGroup>
        </DisplayGroup>
</Jurisdictions>

Here's a mockup of what this could look like: tree

Questions

  1. Is there confusion between "riverscapes context projects" and context web mapping layers?
  2. What do you think of the XML?
  3. Is there a better name than "jurisdictions"?
joewheaton commented 4 years ago

Questions

  1. Is there confusion between "riverscapes context projects" and context web mapping layers?

Yes. Why not just call them "Basemaps". That is what most maps refer to this stuff as. Then when adding, allow to add WMS or WMST.

  1. What do you think of the XML?

like it. It might be helpful to have some optional arguments for a thumbnail and/or icon. For example: <Item name="USGS Topo Map" url="https://basemap.nationalmap.gov:443/arcgis/services/USGSTopo/MapServer/WmsServer?" icon="USGS" thumbnail="https://someurl.com"/>

So change <jurisdiction > to <organization > and maybe add optional url tag <organization name="Ordinance Survey" url="https://www.ordnancesurvey.co.uk/opendatadownload/products.html">

  1. Is there a better name than "jurisdictions"?

How about just "organization" and that might be a jurisdiction, might be a group (e.g. USGS, OS) with no jurisdiction, but a geography, or whatever.

Other Ideas

philipbaileynar commented 4 years ago

Thanks @joewheaton

Yes, I like the name "base maps".

I am OK introducing the concept of "organizations" into the XML. However, I still think we are missing the higher level concept of what you refer to as "geographies". In the United States I think there might be several organizations: USGS, MapBox, EPA etc. What is the parent entity that encapsulates all these items and separates them from say New Zealand or the UK? "Regions" perhaps? Using the word "geographies" for this purpose feels like an unusual grammatical use of this term. That's why I went to jurisdictions.

The ultimate goal is to have the user select one drop in the software options ("United States", "New Zealand", or "UK") and then only see the map layers and organizations that reside within that extent. People in New Zealand should never see "USGS" etc.

joewheaton commented 4 years ago

I get geographies... But it is truer to say who hosts it. I worry about query of geographies and maintaining that list...

jb10016 commented 4 years ago

Hi all,

I’ll reply properly later today - but what about ‘regions’

On Tue, 21 Apr 2020 at 08:31, Joe Wheaton notifications@github.com wrote:

I get geographies... But it is truer to say who hosts it. I worry about query of geographies and maintaining that list...

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/Riverscapes/RaveAddIn/issues/6#issuecomment-616791990, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIRHCGPP5YPJ365LXUEWSW3RNSWLBANCNFSM4MLC7S4Q .

--

| Professor James Brasington | Waikato Regional Council Chair of River Science|

| University of Waikato | Hamilton | New Zealand | Tel: +64 7 858 5046 |

| Google Scholar https://scholar.google.com/citations?user=38_8l8UAAAAJ&hl=en | ResearcherID http://www.researcherid.com/ProfileView.action?returnCode=ROUTER.Success&Init=Yes&SrcApp=CR&queryString=KG0UuZjN5WloQK%252BUpZcD9CXW%252FmTExVhZy39iLQ3aImY%253D&SID=F2th7mwOctvGtMoLkNw | ResearchGate https://www.researchgate.net/profile/James_Brasington| UoW Profile http://www.waikato.ac.nz/staff-profiles/people/jbrasing |

joewheaton commented 4 years ago

I like Regions too. I hear you @philipbaileynar on ultimate goal. Question for you, is there a way to query a WMS or WMTS and get the extents of its coverage? If so, the whole "regions" thing seems very simple. Otherwise, still pretty simple, we just have to manually organize these by regions we define.

In the past, we talked about splitting the explorer space into two panes (one below for navigating within Warehouse), and the existing pane. I wonder if instead of this being something that clutters up the explore tree, it is just something like an 'Add Basemap' button or command, that allows you to ad by region or by organization or by specifying your own WMS or WMST (much like it works in normal GIS, but with most common and useful ones really readilly at your fingertips). What will happen is wherever we have users, we will have good basemaps (or people requesting to get their favorites added).

philipbaileynar commented 4 years ago

A prototype of this feature is now like in version 1.0.5. @joewheaton did a nice job of reviewing it in issue #10

We still need to implement the API key capability that will be required for New Zealand. But it's a good start and really starts to make RAVE useful.