Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add the Map-Based Query Mode for Working with Spatial Data #103

Draft
wants to merge 81 commits into
base: master
Choose a base branch
from

Conversation

murermader
Copy link

@murermader murermader commented Feb 15, 2025

Summary

This PR adds a new query mode for working with spatial data more visually. This PR extends the frontend, while Polypheny-DB: Extend GIS Support to the Document and Graph Model #537 extends the backend.

mbqm_eiffel_tower_100

Changes

  • data-view was extended to allow viewing spatial data on a map
    • A button will be shown if a heuristic detects GeoJSON or WKT data. Heuristic, because there is no PolyGeometry type information on the frontend (at least not for all models).
    • This extends
      • Data section
      • Query console results
  • Added the data-map component, that can show spatial data on a map.
  • Added the map-layers component, that can be used to configure the layers for the data-map, which are exchanged over the LayerSettingsService.
  • Adds the map-querying view at views/querying/gis , which can be accessed from the Query dropdown in the header. Combines data-map and map-layers to create the Map Based Query Mode.

Possible Improvements

  • Add a legend
  • Change from SVG to Canvas rendering for increased performance
  • Implement mitigations for loading results that are too large for the webinterface too handle: (1) limit number of rows, (2) throw away data that cannot be visualized

ToDo

  • Links between nodes in the data-graph component do not work correctly, after updating the code to not cause build errors.

We want to use these controls for the GIS query mode, but we do not want to include the whole editor.
…ck on "Polygon Tool" themselves.

Maybe activate the Polygon Tool by clicking the button that appears in
JavaScript?
- Only one layer at a time can be inside the drawing mode. This simplifies
  our architecture, because otherwise we would have to execute multiple
  queries and keep track which results belong to which layer.
- Make it possible to apply the filter multiple times in a row without
  breaking.
- Semantics should now be easier to understand.
Removing layers is important, because if the client has performance
problems, those can be fixed by removing a layer with a lot of shapes.
Otherwise this would have only been possible by adding a new layer,
which causes a rerender, or rerunning the query for an existing layer.
# Conflicts:
#	src/app/components/components.module.ts
#	src/app/components/data-view/data-graph/data-graph.component.ts
#	src/app/services/crud.service.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant