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
The goal of this tool is to enable users to compute and visualize isochrones and isodistances using both proprietary and open-source APIs. The solution is intended to provide a user-friendly interface, configuration options, and compatibility with MapStore’s existing geospatial tools.
Technical Solution
The plugin will be implemented as a MapStore Core plugin, and a list of child core plugins and extensions implementations for the different APIs.
Generic host: This component provides the generic functionality and will host the client component that implements the specific APis.
The plugin implements shared functionality and abstractions that specific components, like the one for GrapHopper, implement and extend. In the future additional components (services APIs) can be added to the plugin.
Specific configurations for child components will be available through the dedicated configuration section or the plugin configuration inside map viewers.
Where requested / available, a configuration key will be provided to add an API Key for service authentication.
Isochrone/Isodistance Core plugin
This plugin implementation serves as the main container and provides core shared functionalities, including:
An input field to retrieve a point location, either by searching or selecting a point on the map
An input field for selecting time or distance values
Business logic to support the integration of isochrone / isodistance provider components
Tools to initiate the isochrone / isodistance request workflow
Management of generated runs, with the following available actions:
Edit: Modify run parameters and generate a new result upon saving
Delete: Remove the selected run from the list of saved runs
Save as Layer: Convert the current run into a MapStore vector layer embedded in the map configuration
Export: Export the selected run as a GeoJSON file
Visibility: Toggle the visibility of the generated isochrone layer on the map
Opacity: Adjust the opacity of the generated isochrone layer on the map
Note
Runs are temporarily saved in the panel. After refreshing or changing the page runs will be reset. Only a run converted to layer will be persisted >inside the map
Some theming aspects proposed for the panel in the mockup could be different in the final delivery to follow the overall MapStore theme
GraphHopper Provider
This component is an isochrone / isodistance provider that implements the GraphHopper Isochrone API, which is an open-source implementation offering free and commercial cloud services, as well as the option to set up an on-premise instance.
The provider functions as a child component of the main Isochrone plugin and includes the following elements:
A React component capable of registering the API. This component reads and utilizes selected parameters from the main Isochrone plugin and returns a vector layer object compatible with MapStore for each Isochrone / isodistance request
Selection of transportation mode and restrictions, according to the features implemented by the GraphHopper Routing Profiles
Administrators can configure the Isochrones plugin for a MapViewer
The selectable plugin will show the generic "Isochrones and Isodistances" label, and will automatically select the GraphHopper plugin being the only implementation currently available. In the future, when multiple services will be available, the user will select the specific sub-plugin
Final users will be able to activate the tool and perform the expected functionas
MockUps
The following figures represent preliminary mockups of the main components. These mockups illustrate how available API options are exposed through the plugin interface. They are intended to serve as visual guides and reference configurations that can be adapted and extended during the implementation phase.
Furthermore, most of the options and parameters shown in the mockups will be configurable via the plugin configuration. This ensures flexibility and allows future customization or integration of alternative data providers, without requiring changes to the core plugin logic.
Introduction
The goal of this tool is to enable users to compute and visualize isochrones and isodistances using both proprietary and open-source APIs. The solution is intended to provide a user-friendly interface, configuration options, and compatibility with MapStore’s existing geospatial tools.
Technical Solution
The plugin will be implemented as a MapStore Core plugin, and a list of child core plugins and extensions implementations for the different APIs.
The plugin implements shared functionality and abstractions that specific components, like the one for GrapHopper, implement and extend. In the future additional components (services APIs) can be added to the plugin.
Specific configurations for child components will be available through the dedicated configuration section or the plugin configuration inside map viewers.
Where requested / available, a configuration key will be provided to add an API Key for service authentication.
Isochrone/Isodistance Core plugin
This plugin implementation serves as the main container and provides core shared functionalities, including:
Note
GraphHopper Provider
This component is an isochrone / isodistance provider that implements the GraphHopper Isochrone API, which is an open-source implementation offering free and commercial cloud services, as well as the option to set up an on-premise instance.
The provider functions as a child component of the main Isochrone plugin and includes the following elements:
Acceptance Criteria
MockUps
The following figures represent preliminary mockups of the main components. These mockups illustrate how available API options are exposed through the plugin interface. They are intended to serve as visual guides and reference configurations that can be adapted and extended during the implementation phase.
Furthermore, most of the options and parameters shown in the mockups will be configurable via the plugin configuration. This ensures flexibility and allows future customization or integration of alternative data providers, without requiring changes to the core plugin logic.
Fig.1
