Skip to content

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

We want to use these controls for the GIS query mode, but we do not want to include the whole editor.
…+ update + execute plan

- Add polyPlan event emitter, which can be subscribed from the outside
  to know when the text representation of the plan is done.
…tantly + bug fixed where old layer was still referenced
…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:
#	angular.json
#	package-lock.json
#	package.json
#	src/app/components/components.module.ts
#	src/app/components/data-view/data-graph/data-graph.component.ts
#	src/app/services/webui-settings.service.ts
#	src/app/views/querying/console/console.component.html
#	src/app/views/querying/console/console.component.scss
#	src/app/views/querying/console/console.component.ts
#	src/app/views/views.module.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.

3 participants