Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
838f94f
Add GIS component for map-querying + align icons in Query dropdown co…
murermader Nov 29, 2024
e21bdb9
Fixed typo in class name
murermader Nov 29, 2024
5754874
Show empty leaflet map correctly inside results view
murermader Nov 29, 2024
26c980d
Add classes from prototype + fix layout for map and layers + dynamic …
murermader Nov 29, 2024
d0261b7
Add code back in to render circles and paths on map
murermader Nov 30, 2024
a2ff5ef
Change padding to margin to fix layout problem
murermader Nov 30, 2024
5351461
Add websocket + ability to run query to layer settings + heuristic fo…
murermader Dec 2, 2024
f8bf8aa
Add parsing for relational model for CombinedResult
murermader Dec 2, 2024
ba35c95
layersettings.service.ts TsLint
murermader Dec 2, 2024
7052834
Add parsing for graph model for CombinedResult
murermader Dec 2, 2024
54c78e7
Add navigation from results to map query mode + fix show/hide layer
murermader Dec 3, 2024
a0f03e3
Add log statements to debug why layer settings do not show layers
murermader Dec 3, 2024
48949f3
try to get queries to work
murermader Dec 3, 2024
631e028
Add leaflet-draw + npm packages for typescript types (d3, leaflet)
murermader Dec 3, 2024
a1ac558
disable other leaflet-draw options, 1 is enough
murermader Dec 3, 2024
1b184ad
Extract app-query-editor and app-submit-query-button out of app-console
murermader Dec 6, 2024
3e0fb81
Add GIS components to ViewsModule and remove standalone:true
murermader Dec 6, 2024
8dfce4f
Add noLimit to UiRequest
murermader Dec 7, 2024
09f45a3
Add "Add Layer From Query"
murermader Dec 7, 2024
daf3bec
Fix submitQuery() in console
murermader Dec 8, 2024
98a4e5e
map-layers cleanup + layer name from query
murermader Dec 8, 2024
1a6e9b6
Map-based query: Fix lifecycle issues (unsubscribe from service, run …
murermader Dec 8, 2024
5dabcbd
Detect GEOMETRY columns from relational CombinedResult
murermader Dec 9, 2024
b7e697b
GIS: Add button for each layer to zoom the map to fit the layer + aut…
murermader Dec 9, 2024
e52d9df
Add Data section to each MapLayer card, instead of popover
murermader Dec 9, 2024
a9e0766
Add filter button that starts drawing mode (WIP)
murermader Dec 10, 2024
e30c7ef
Reset everything in LayerSettingsService once we navigate away from t…
murermader Dec 10, 2024
c0458da
Use Object (Record) instead of Map
murermader Dec 10, 2024
73f7cc3
Use layer-id instead of layer-name + layer-index for hiding / removin…
murermader Dec 10, 2024
86da72f
MapLayer.addData(): Remove everything where geometry is null
murermader Dec 10, 2024
76531af
Filter Section + Export Button
murermader Dec 11, 2024
dcc2231
Add button to rerender query layers + update layer change detection
murermader Dec 11, 2024
4efdc81
Add edit query button
murermader Dec 11, 2024
62b2d90
set host to node URL
murermader Dec 11, 2024
be8f01a
Merge branch 'algebra-exploration' into gis
murermader Dec 13, 2024
927160e
Update dependencies
murermader Dec 13, 2024
2b8bece
GIS: Close the linear ring of the polygon after creation by appending…
murermader Dec 14, 2024
f63d3fe
GIS: Set analyze to true, so that we can access the plan for applying…
murermader Dec 14, 2024
7f54449
GIS: Print GeoJSON polygon when added
murermader Dec 14, 2024
1d05b49
GIS: Add code for plan handling for each layer (WIP)
murermader Dec 14, 2024
8669829
map-layers.component.ts TsLint
murermader Dec 15, 2024
edd4a3f
MapLayer.model.ts TsLint
murermader Dec 15, 2024
01e1370
map-layers.component.ts: Load Logical Query Plan as JSON and attach t…
murermader Dec 15, 2024
3cf77bf
FilterConfig.ts TsLint
murermader Dec 15, 2024
863eb3e
querying/gis TsLint
murermader Dec 15, 2024
d73b05b
GIS: Add @terraformer/wkt to convert between GeoJSON and wkt format
murermader Dec 15, 2024
4697f95
GIS: Integrate app-alg-viewer into map-layers: convert query to plan …
murermader Dec 15, 2024
9a3d9c4
GIS: Add geometryField to layer, to know which field to use in filter
murermader Dec 15, 2024
0a729cd
GIS: Unify rendering method + implement square render function + fix …
murermader Dec 16, 2024
214a6ad
Update PointShapeConfig to render Triangle, Star or Square
murermader Dec 16, 2024
a80973a
GIS: Fix rendering of square shape
murermader Dec 16, 2024
b69a57a
GIS: Add cross shape
murermader Dec 17, 2024
fbccc83
GIS: Only allow one query (rerun layer / filter layer) at a time
murermader Dec 17, 2024
f5e5e1a
GIS: Apply filter geometry to layer now works per layer + updates ins…
murermader Dec 17, 2024
6aff571
GIS: Add note that filter is not stored inside query
murermader Dec 17, 2024
e06fd08
GIS: Map now empty after second query is run where no geometric data …
murermader Dec 17, 2024
a512064
GIS: Disable enable/disable functions for polygon tool, user must cli…
murermader Dec 17, 2024
7b1a0a6
GIS: Extract distance and add comment
murermader Dec 18, 2024
3b98ee7
GIS: Correctly parse relational column with type double
murermader Dec 18, 2024
49a5585
GIS: Refactor Add Drawing Mode
murermader Dec 18, 2024
7661ae3
GIS: Edit Layer + Remove layer now rerender immediately
murermader Dec 19, 2024
4cd5d4d
Merge branch 'master' of github.com:polypheny/Polypheny-UI into gis
datomo Nov 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,9 @@
"node_modules/@ali-hm/angular-tree-component/css/angular-tree-component.css",
"node_modules/katex/dist/katex.min.css",
"node_modules/prismjs/themes/prism-okaidia.css",
"src/scss/angular2-multiselect-dropdown.scss"
"src/scss/angular2-multiselect-dropdown.scss",
"src/app/components/data-view/data-map/leaflet.css",
"node_modules/leaflet-draw/dist/leaflet.draw.css"
],
"stylePreprocessorOptions": {
"includePaths": [
Expand Down
3,142 changes: 3,039 additions & 103 deletions package-lock.json

Large diffs are not rendered by default.

13 changes: 13 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@
"@coreui/icons-angular": "^4.7.14",
"@coreui/utils": "2.0.2",
"@ngtools/webpack": "^17.2.2",
"@terraformer/wkt": "^2.2.1",
"@turf/turf": "^7.1.0",
"ace-builds": "^1.31.1",
"angular-ng-autocomplete": "^2.0.12",
"angular2-multiselect-dropdown": "^9.0.0",
Expand All @@ -40,8 +42,15 @@
"flag-icons": "^6.10.0",
"flatpickr": "^4.6.3",
"font-awesome": "^4.7.0",
"geojson": "^0.5.0",
"graphlib-dot": "^0.6.4",
"hammer": "0.0.5",
"hammerjs": "^2.0.8",
"highlight.js": "^11.8.0",
"jquery": "3.7.1",
"jquery-ui": "^1.13.0",
"leaflet": "^1.9.4",
"leaflet-draw": "^1.0.4",
"json-pointer": "^0.6.2",
"katex": "0.16.21",
"lodash": "^4.17.20",
Expand Down Expand Up @@ -85,8 +94,12 @@
"@types/jasminewd2": "^2.0.8",
"@types/json-pointer": "^1.0.34",
"@types/lodash": "^4.17.13",
"@types/leaflet": "^1.9.14",
"@types/leaflet-draw": "^1.0.11",
"@types/marked": "^4.3.0",
"@types/node": "^12.11.1",
"@types/terraformer__wkt": "^2.0.3",
"@types/uuid": "^10.0.0",
"codelyzer": "^6.0.2",
"fstream": "^1.0.12",
"html-webpack-plugin": "^5.5.3",
Expand Down
10 changes: 8 additions & 2 deletions src/app/components/components.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,8 @@ import {AlgMetadataComponent} from './polyalg/algnode/alg-metadata/alg-metadata.
import {DoubleArgComponent} from './polyalg/controls/double-arg/double-arg.component';
import {WindowArgComponent} from './polyalg/controls/window-arg/window-arg.component';
import {AutocompleteComponent} from './autocomplete/autocomplete.component';
import {DataMapComponent} from './data-view/data-map/data-map.component';
import {MapValuesPipe} from '../pipes/pipes';


@NgModule({
Expand Down Expand Up @@ -239,6 +241,7 @@ import {AutocompleteComponent} from './autocomplete/autocomplete.component';
DataCardComponent,
DataTableComponent,
DataGraphComponent,
DataMapComponent,
MediaComponent,
DeleteConfirmComponent,
ExpandableTextComponent,
Expand Down Expand Up @@ -272,7 +275,8 @@ import {AutocompleteComponent} from './autocomplete/autocomplete.component';
AlgMetadataComponent,
DoubleArgComponent,
WindowArgComponent,
AutocompleteComponent
AutocompleteComponent,
MapValuesPipe
],
exports: [
BreadcrumbComponent,
Expand All @@ -297,8 +301,10 @@ import {AutocompleteComponent} from './autocomplete/autocomplete.component';
ReloadButtonComponent,
DockerInstanceComponent,
AlgViewerComponent,
DataMapComponent,
JsonTextComponent,
AutocompleteComponent
AutocompleteComponent,
MapValuesPipe
]
})
export class ComponentsModule {
Expand Down
36 changes: 36 additions & 0 deletions src/app/components/data-view/data-map/data-map.component.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<div [ngClass]="isInsideResults ? '' : 'map-margin' ">
<div class="map-container" [ngClass]="isInsideResults ? 'inside-results' : '' ">
<div id="map"></div>
<div *ngIf="this.loading()" class="map-overlay">
<div class="spinner-container">
<c-spinner color="light">
<span class="visually-hidden">{{ this.isLoadingMessage }}</span>
<span class="visually-hidden">Loading...</span>
</c-spinner>
<span>{{ this.isLoadingMessage }}</span>
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="map-overlay-buttons">
<button *ngIf="this.canRerenderLayers" (click)="this.layerSettings.rerenderButtonClicked()"
class="shadow-lg" cButton color="primary">Refresh layers
</button>
<button *ngIf="isInsideResults" (click)="navigateToMapQueryMode()"
class="shadow-lg" cButton color="primary">See full results in map-based query mode
</button>
</div>
</div>
</div>


<c-row class="row" *ngIf="$result()">
<c-col class="col-lg-12">
<nav aria-label="Page navigation" class="float-right" *ngIf="$result().highestPage > 1">
<c-pagination>
<li cPageItem *ngFor="let p of pagination" [active]="p.active" [disabled]="p.disabled">
<a cPageLink (click)="paginate(p)" [routerLink]="[]">{{ p.label }}</a>
</li>
</c-pagination>
</nav>
</c-col>
</c-row>
62 changes: 62 additions & 0 deletions src/app/components/data-view/data-map/data-map.component.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
.map-container {
position: relative;
height: 100%;
border: 1px solid lightgray;
}

// Only for query mode, the results view already has a margin
.map-margin {
margin: 1rem 0;
height: calc(100% - 2rem);
}

.inside-results {
min-height: 600px;
padding: 0;
}

#map {
position: absolute;
inset: 0;
z-index: 1;
}

.map-overlay {
position: absolute;
inset: 0;
z-index: 2;
pointer-events: none;
display: grid;
background: rgba(0, 0, 0, 0.1);
place-items: center;
}

.spinner-container {
display: flex;
flex-direction: column;
align-items: center;
gap: 0.5rem;
background: rgba(0, 0, 0, 0.25);
padding: 2rem;
}

.map-overlay-buttons {
display: flex;
flex-direction: row;
gap: 1rem;
position: absolute;
z-index: 3;
bottom: 2rem;
right: 2rem;
}

.spinner-container > span {
font-size: 1.5rem;
font-weight: 400;
color: white;
}


.leaflet-overlay-pane > svg {
transition: opacity 50ms ease-in-out;
}
Loading