fgpv-vpgf / rcs

RAMP Configuration Service
http://fgpv-vpgf.github.io/rcs
1 stars 8 forks source link

Allow Esri Feature Layer services to be added as Dynamic Map Service Layers #66

Closed mweech closed 7 years ago

mweech commented 7 years ago

Unless a group layer is being added, the RCS prevents a Esri Feature Layer from being registered to be loaded as a dynamic map service (image based with tabular data handled seperately).

Update RCS to allow for this registration.

dan-bowerman commented 7 years ago

Just to clarify:

{
    "fr": {
        "service_url": "http://section917.cloudapp.net/arcgis/rest/services/JOSM/Oilsands_fr/MapServer/20",
        "service_type": "esriFeature",
        "service_name": "Surveillance de la situation et des tendances d'oiseaux terrestres inscrits rares et difficiles à surveiller"
    },
    "en": {
        "service_url": "http://section917.cloudapp.net/arcgis/rest/services/JOSM/Oilsands_en/MapServer/20",
        "service_type": "esriFeature",
        "service_name": "Status and Trend Monitoring of Listed, Rare, and Difficult-to-Monitor Landbirds"
    },
    "version": "2.0"
}

Should permit registration as "esriDynamic" in the service_type field?

alyec commented 7 years ago

If you are thinking of adding esriDynamic as an additional entry for service_type in the schema that won't work as feature layers support options that dynamic won't. Splitting it off into a more limited version should be fine, but it's a little more work. Also, the viewer schema needs to be adjusted as well and I don't think this has happened yet.

dan-bowerman commented 7 years ago

Using my example above, what's the difference between adding support for esriDynamic single feature layers, and just registering like this:

{
    "fr": {
        "service_url": "http://section917.cloudapp.net/arcgis/rest/services/JOSM/Oilsands_fr/MapServer/",
        "scrape_only": [20],
        "service_type": "esriMapServer",
        "service_name": "Surveillance de la situation et des tendances d'oiseaux terrestres inscrits rares et difficiles à surveiller"
    },
    "en": {
        "service_url": "http://section917.cloudapp.net/arcgis/rest/services/JOSM/Oilsands_en/MapServer/",
        "scrape_only": [20],
        "service_type": "esriMapServer",
        "service_name": "Status and Trend Monitoring of Listed, Rare, and Difficult-to-Monitor Landbirds"
    },
    "version": "2.0"
}
alyec commented 7 years ago

Depends on what you're planning to do with the schema. What you posted is fine, but this would not be:

{
    "fr": {
        "service_url": "http://section917.cloudapp.net/arcgis/rest/services/JOSM/Oilsands_fr/MapServer/20",
        "service_type": "esriDynamic",
        "loading_mode": "snapshot",
        "service_name": "Surveillance de la situation et des tendances d'oiseaux terrestres inscrits rares et difficiles à surveiller"
    },
    "en": {
        "service_url": "http://section917.cloudapp.net/arcgis/rest/services/JOSM/Oilsands_en/MapServer/20",
        "service_type": "esriDynamic",
        "loading_mode": "snapshot",
        "service_name": "Status and Trend Monitoring of Listed, Rare, and Difficult-to-Monitor Landbirds"
    },
    "version": "2.0"
}
mweech commented 7 years ago

wouldnt this be more of an extension of the esriMapServer type, whereby instead of specifying "scrape_only" or "recursive" they would just provide a URL to a feature layer? i.e. http://section917.cloudapp.net/arcgis/rest/services/JOSM/Oilsands_fr/MapServer/20

dan-bowerman commented 7 years ago

From @mweech on Gitter:

the issue is that you can not register a feature layer URL (http://section917.cloudapp.net/arcgis/rest/services/JOSM/Oilsands_fr/MapServer/20) as a esriMapServer type it rejects it and says that this should be esriFeature instead... whats being proposed is to remove this validation and allow that layer to be added under the esriMapServer type as is. this shouldnt need a change to the schema the reason why u dont want to register as "http://section917.cloudapp.net/arcgis/rest/services/JOSM/Oilsands_fr/MapServer" and scrape_only:20 is that you don't want to have collapsible group layer type legend entry for what is just one layer its just supposed to be loaded and handled as dynamic instead, but act and feel like a feature layer in the viewer (minus the hovertips we are implementing)

dan-bowerman commented 7 years ago

James Rae @james-rae 09:47 did we agree that one of the changes in layer-selector v2 would be that single-child dynamic layers would be automatically, or have the option, of being pulled up to the top level (i.e. no group container)? or was that for fixed-legend engine only?

Mike Weech @mweech 09:48 i dont think we every discussed that tbh.. not that specific case

James Rae @james-rae 09:48 to me that is where the effort lies. not in the registration, but how the UI processes that specific case

Mike Weech @mweech 09:49 i think we would even be ok with the less than ideal UI initially as long as we could register the service appropriately.. right now u cant even do that i believe

James Rae @james-rae 09:49 makes sense so we remove the blocking code at registration. internally, in RCS db, it will still be "http//.../MapServer", scrape_only:20 , correct? (or the same result of a scrape_only registration)

dan-bowerman commented 7 years ago

Individual feature layers can now be registered as Dynamic. The below sample demonstrates how this registration should look (also available on the test/static.html page included with RCS):

{
    "fr": {
        "service_url": "http://section917.cloudapp.net/arcgis/rest/services/JOSM/Oilsands_fr/MapServer/",
        "scrape_only": [20],
        "service_type": "esriMapServer",
        "service_name": "Surveillance de la situation et des tendances d'oiseaux terrestres inscrits rares et difficiles à surveiller"
    },
    "en": {
        "service_url": "http://section917.cloudapp.net/arcgis/rest/services/JOSM/Oilsands_en/MapServer/",
        "scrape_only": [20],
        "service_type": "esriMapServer",
        "service_name": "Status and Trend Monitoring of Listed, Rare, and Difficult-to-Monitor Landbirds"
    },
    "version": "2.0"
}