Skip to content

ArcGIS Interoperability #10040

@tdipisa

Description

@tdipisa

Description

It is requested to improve on the interoperability to support better ArcGIS services in MapStore. This issue involves two main activities for which the following task is in common:

subtasks
Support of tokens for private layers - MapStore token support

ArcGIS WMS Server interoperability for GetFeatureInfo requests

Thanks to #9048, the serverType property has been recently added in MapStore to define which type of server is providing the WMS service.
It should be possible to use this option to exclude the exceptions parameter not supported in an ArcGIS WMS service.
During the development phase it is requested to evaluate if it is necessary an additional serverType or the NO_VENDOR type used also by other services is enough.
Possibly also hide some functionalities not supported by WMS endpoint that does not support GetFeatureInfo application/json responses with geometry, to do so it is necessary also to store the information related to the list of supported get feature info responses.

Some notes about findings from the preliminary investigation:

  • It seems that the DescribeLayer request used by MapStore to add the search parameter with WFS functionality is not supported in the ArcGIS WMS service. This means is not possible to associate a WFS service with a WMS programmatically in addition some tests done on agsnotfed2/rest/services/Test/country_4m/MapServer show that the WMS/WFS capabilities endpoint used two different name for the layer (0/country_4m:apgispaudw.common_data.country_4m) and this makes even difficult to associate them manually (but maybe this is only a configuration problem).

Involved sub tasks are:

subtasks
Review WMS get feature info request based on server type
Hide the highlight feature icon of get feature info plugin if GeoJSON response is not supported. This include work related to the storing of additional information in the layer config or alternative strategy

ArcGIS MapServer Catalog and Layer support

The work for this task focus on the support of ArcGIS MapServer endpoints inside MapStore. The task should include following improvement inside MapStore:

  • New catalog type for ArcGIS MapServer endpoint with the possibility to list layers and add them to the map
  • New ArcGIS MapServer layer type implementations for OpenLayers, Cesium and Leaflet with the default lifecycle
  • Support of base layer settings: opacity, visibility, title, description, group and visibility limits
  • Support of get feature info using the /query endpoint

Some notes about findings from the preliminary investigation:

  • A MapServer endpoint could provide a single layer or multiple layer that could compose a layer group. It is requested to evaluate in the development phase if the information about subLayerIds and parentLayerId have effect on the visualization in map
  • It shoud lbe possible to use maxScale and minScale properties of a layer to set the visibility limits. In general we should take a look to all the property available in the layer object
  • It is possible to send a request to /MapServer/{layerId} to get additional information about the specific layer
  • It is possible to use the query endpoint /MapServer/{layerId}/query (POST) for Get Feature Info

Involved sub tasks are:

subtasks
Support of ArcGIS MapServer endpoint in MapStore: catalog, layer visualization, get feature info and base layer settings

Acceptance criteria

  • It will be possible to successfully perform GetFeatureInfo requests according to the server type and show Identify results to end users
  • It will be possible to support layers from ArcGIS MapServer added to the map through the Catalog tool
  • The MS developer guide will be updated accordingly by including all related and necessary info

Other useful information

Here a branch where a base implementation sa been tested during the preliminary evaluation of this work. That should be completely refactored to be accepted in MapStore, take this just as a prototype.

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions