geo-activity-playground 0.45.0__py3-none-any.whl → 1.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- geo_activity_playground/core/datamodel.py +3 -0
- geo_activity_playground/core/export.py +129 -0
- geo_activity_playground/core/meta_search.py +1 -1
- geo_activity_playground/webui/app.py +3 -1
- geo_activity_playground/webui/authenticator.py +4 -2
- geo_activity_playground/webui/blueprints/auth_blueprint.py +3 -0
- geo_activity_playground/webui/blueprints/explorer_blueprint.py +300 -188
- geo_activity_playground/webui/blueprints/export_blueprint.py +30 -0
- geo_activity_playground/webui/blueprints/upload_blueprint.py +9 -0
- geo_activity_playground/webui/static/server-side-explorer.js +55 -0
- geo_activity_playground/webui/templates/auth/index.html.j2 +1 -0
- geo_activity_playground/webui/templates/explorer/server-side.html.j2 +41 -36
- geo_activity_playground/webui/templates/export/index.html.j2 +39 -0
- geo_activity_playground/webui/templates/page.html.j2 +3 -6
- {geo_activity_playground-0.45.0.dist-info → geo_activity_playground-1.0.0.dist-info}/METADATA +2 -1
- {geo_activity_playground-0.45.0.dist-info → geo_activity_playground-1.0.0.dist-info}/RECORD +19 -16
- geo_activity_playground/webui/templates/explorer/index.html.j2 +0 -148
- {geo_activity_playground-0.45.0.dist-info → geo_activity_playground-1.0.0.dist-info}/LICENSE +0 -0
- {geo_activity_playground-0.45.0.dist-info → geo_activity_playground-1.0.0.dist-info}/WHEEL +0 -0
- {geo_activity_playground-0.45.0.dist-info → geo_activity_playground-1.0.0.dist-info}/entry_points.txt +0 -0
@@ -14,10 +14,23 @@
|
|
14
14
|
|
15
15
|
<div class="row mb-3">
|
16
16
|
<div class="col">
|
17
|
-
<
|
17
|
+
<p>You have {{ num_tiles }} explored tiles. There are {{ num_cluster_tiles }} cluster tiles in
|
18
|
+
total. Your largest cluster consists of {{ max_cluster_size }} tiles. Your largest square has size
|
19
|
+
{{ square_size }}².
|
20
|
+
</p>
|
21
|
+
<p>Open the <a
|
22
|
+
href="{{ url_for('square_planner.index', zoom=zoom, x=square_x, y=square_y, size=square_size) }}">Square
|
23
|
+
Planner</a> to plan the next extension.</p>
|
18
24
|
</div>
|
19
25
|
</div>
|
20
26
|
|
27
|
+
<div class="btn-group mb-3" role="group">
|
28
|
+
<button type="button" class="btn btn-primary" onclick="changeColor('cluster')">Cluster</button>
|
29
|
+
<button type="button" class="btn btn-primary" onclick="changeColor('first')">First Visit</button>
|
30
|
+
<button type="button" class="btn btn-primary" onclick="changeColor('last')">Last Visit</button>
|
31
|
+
<button type="button" class="btn btn-primary" onclick="changeColor('visits')">Number of Visits</button>
|
32
|
+
</div>
|
33
|
+
|
21
34
|
<div class="row mb-3">
|
22
35
|
<div class="col">
|
23
36
|
<div id="explorer-map" class="mb-1" style="height: 800px;"></div>
|
@@ -26,47 +39,39 @@
|
|
26
39
|
onclick="downloadAs('missing.geojson')">Missing as GeoJSON</a> or <a href="#"
|
27
40
|
onclick="downloadAs('missing.gpx')"">Missing as GPX</a>.</p>
|
28
41
|
<script>
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
}
|
34
|
-
L.tileLayer('/explorer/{{ zoom }}/tile/{z}/{x}/{y}.png', {
|
35
|
-
maxZoom: 19,
|
36
|
-
attribution: '{{ map_tile_attribution|safe }}'
|
37
|
-
}).addTo(map)
|
38
|
-
|
39
|
-
let bbox = {{ center.bbox| safe }}
|
40
|
-
if (bbox) {
|
41
|
-
map.fitBounds(L.geoJSON(bbox).getBounds())
|
42
|
-
}
|
42
|
+
const center_latitude = {{ center.latitude }};
|
43
|
+
const center_longitude = {{ center.longitude }};
|
44
|
+
const zoom = {{ zoom }};
|
45
|
+
const bbox = {{ center.bbox | safe }};
|
46
|
+
const map_tile_attribution = '{{ map_tile_attribution|safe }}';
|
43
47
|
</script>
|
48
|
+
<script src=" /static/server-side-explorer.js"></script>
|
44
49
|
</div>
|
45
50
|
</div>
|
46
51
|
|
47
52
|
<div class=" row mb-3">
|
48
|
-
|
49
|
-
|
50
|
-
</div>
|
53
|
+
<div class="col">
|
54
|
+
<h2>Tile history</h2>
|
51
55
|
</div>
|
56
|
+
</div>
|
52
57
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
</div>
|
64
|
-
<div class="col-md-4">
|
65
|
-
{% if plot_square_evolution|length > 0 %}
|
66
|
-
{{ vega_direct("plot_square_evolution", plot_square_evolution) }}
|
67
|
-
{% endif %}
|
68
|
-
</div>
|
58
|
+
<div class="row mb-3">
|
59
|
+
<div class="col-md-4">
|
60
|
+
{% if plot_tile_evolution|length > 0 %}
|
61
|
+
{{ vega_direct("plot_tile_evolution", plot_tile_evolution) }}
|
62
|
+
{% endif %}
|
63
|
+
</div>
|
64
|
+
<div class="col-md-4">
|
65
|
+
{% if plot_cluster_evolution|length > 0 %}
|
66
|
+
{{ vega_direct("plot_cluster_evolution", plot_cluster_evolution) }}
|
67
|
+
{% endif %}
|
69
68
|
</div>
|
69
|
+
<div class="col-md-4">
|
70
|
+
{% if plot_square_evolution|length > 0 %}
|
71
|
+
{{ vega_direct("plot_square_evolution", plot_square_evolution) }}
|
72
|
+
{% endif %}
|
73
|
+
</div>
|
74
|
+
</div>
|
70
75
|
|
71
|
-
|
72
|
-
|
76
|
+
{% endif %}
|
77
|
+
{% endblock %}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
{% extends "page.html.j2" %}
|
2
|
+
|
3
|
+
{% block container %}
|
4
|
+
|
5
|
+
<h1>Export metadata and activities</h1>
|
6
|
+
|
7
|
+
<p>Here you can export all metadata and activities as a ZIP file. Depending on the file format chosen, exporting an
|
8
|
+
activity can take around one second. You can observe a progress bar in the terminal.</p>
|
9
|
+
|
10
|
+
<form method="get" enctype="multipart/form-data" action="{{ url_for('.export') }}">
|
11
|
+
<div class="mb-3">
|
12
|
+
<label for="meta_format" class="form-label">Metadata format</label>
|
13
|
+
<select name="meta_format" id="meta_format" class="form-select" aria-label="Metadata format">
|
14
|
+
<option value="parquet">Parquet</option>
|
15
|
+
{# <option value="json">JSON</option> #}
|
16
|
+
<option value="csv">CSV</option>
|
17
|
+
<option value="xlsx">Excel</option>
|
18
|
+
<option value="ods">OpenDocument Spreadsheet (LibreOffice)</option>
|
19
|
+
</select>
|
20
|
+
</div>
|
21
|
+
|
22
|
+
<div class="mb-3">
|
23
|
+
<label for="activity_format" class="form-label">Activity time series format</label>
|
24
|
+
<select name="activity_format" id="activity_format" class="form-select"
|
25
|
+
aria-label="Activity time series format">
|
26
|
+
<option value="">No export of activities</option>
|
27
|
+
<option value="parquet">Parquet</option>
|
28
|
+
<option value="csv">CSV</option>
|
29
|
+
<option value="geojson">GeoJSON</option>
|
30
|
+
<option value="gpx">GPX</option>
|
31
|
+
<option value="xlsx">Excel</option>
|
32
|
+
<option value="ods">OpenDocument Spreadsheet (LibreOffice)</option>
|
33
|
+
</select>
|
34
|
+
</div>
|
35
|
+
<button type="submit" class="btn btn-primary">Export</button>
|
36
|
+
</form>
|
37
|
+
|
38
|
+
|
39
|
+
{% endblock %}
|
@@ -94,14 +94,10 @@
|
|
94
94
|
Explorer
|
95
95
|
</a>
|
96
96
|
<ul class="dropdown-menu">
|
97
|
-
<li><a class="dropdown-item" href="{{ url_for('explorer.
|
98
|
-
Tiles (Zoom 14)</a></li>
|
99
|
-
<li><a class="dropdown-item" href="{{ url_for('explorer.map', zoom=17) }}">Squadratinhos
|
100
|
-
(Zoom 17)</a></li>
|
101
|
-
<li><a class="dropdown-item" href="{{ url_for('explorer.server_side', zoom=14) }}">Fast
|
97
|
+
<li><a class="dropdown-item" href="{{ url_for('explorer.server_side', zoom=14) }}">
|
102
98
|
Explorer
|
103
99
|
Tiles (Zoom 14)</a></li>
|
104
|
-
<li><a class="dropdown-item" href="{{ url_for('explorer.server_side', zoom=17) }}">
|
100
|
+
<li><a class="dropdown-item" href="{{ url_for('explorer.server_side', zoom=17) }}">
|
105
101
|
Squadratinhos
|
106
102
|
(Zoom 17)</a></li>
|
107
103
|
|
@@ -150,6 +146,7 @@
|
|
150
146
|
<li><a class="dropdown-item" href="{{ url_for('plot_builder.index') }}">Plot Builder</a>
|
151
147
|
</li>
|
152
148
|
<li><a class="dropdown-item" href="{{ url_for('settings.index') }}">Settings</a></li>
|
149
|
+
<li><a class="dropdown-item" href="{{ url_for('export.index') }}">Data Export</a></li>
|
153
150
|
</ul>
|
154
151
|
</li>
|
155
152
|
|
{geo_activity_playground-0.45.0.dist-info → geo_activity_playground-1.0.0.dist-info}/METADATA
RENAMED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: geo-activity-playground
|
3
|
-
Version: 0.
|
3
|
+
Version: 1.0.0
|
4
4
|
Summary: Analysis of geo data activities like rides, runs or hikes.
|
5
5
|
License: MIT
|
6
6
|
Author: Martin Ueding
|
@@ -28,6 +28,7 @@ Requires-Dist: gpxpy (>=1.5.0,<2.0.0)
|
|
28
28
|
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
|
29
29
|
Requires-Dist: matplotlib (>=3.10.1,<4.0.0)
|
30
30
|
Requires-Dist: numpy (>=2.2.3,<3.0.0)
|
31
|
+
Requires-Dist: openpyxl (>=3.1.5,<4.0.0)
|
31
32
|
Requires-Dist: pandas (>=2.2.3,<3.0.0)
|
32
33
|
Requires-Dist: pyarrow (>=19.0.1,<20.0.0)
|
33
34
|
Requires-Dist: python-dateutil (>=2.8.2,<3.0.0)
|
@@ -17,10 +17,11 @@ geo_activity_playground/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
17
17
|
geo_activity_playground/core/activities.py,sha256=apP_-Rg1ub3lh7RARMGXf2BOmJTiahxqpX_soEnYF3E,4681
|
18
18
|
geo_activity_playground/core/config.py,sha256=MhNaVS04rH_1KTUE1IrCTVsKtrSqKgMT7mzgPAri3vk,5305
|
19
19
|
geo_activity_playground/core/coordinates.py,sha256=tDfr9mlXhK6E_MMIJ0vYWVCoH0Lq8uyuaqUgaa8i0jg,966
|
20
|
-
geo_activity_playground/core/datamodel.py,sha256=
|
20
|
+
geo_activity_playground/core/datamodel.py,sha256=8JRviRgjEKwJbC6VSSimOdvIfSy5IJu41_ibQLeg0xk,13514
|
21
21
|
geo_activity_playground/core/enrichment.py,sha256=Tju9sKI-V40CmsS9RiNeGz-Zhp_hx1xjlaWzJMrasXI,7640
|
22
|
+
geo_activity_playground/core/export.py,sha256=ayOmhWL72263oP9NLIZRYCg_Db0GLUFhgNIL_MCrV-E,4435
|
22
23
|
geo_activity_playground/core/heart_rate.py,sha256=-S3WAhS7AOywrw_Lk5jfuo_fu6zvZQ1VtjwEKSycWpU,1542
|
23
|
-
geo_activity_playground/core/meta_search.py,sha256=
|
24
|
+
geo_activity_playground/core/meta_search.py,sha256=nyvCuR7v0pd6KjA8W5Kr71bBafRdE_ol7uSFRJs4eAM,6662
|
24
25
|
geo_activity_playground/core/missing_values.py,sha256=HjonaLV0PFMICnuMrbdUNnK9uy_8PBh_RxI5GuEMQK0,250
|
25
26
|
geo_activity_playground/core/parametric_plot.py,sha256=IefPc6lwthxowvjUDA5wu23oBSw9jq399l04gSaNrOQ,3880
|
26
27
|
geo_activity_playground/core/paths.py,sha256=GGNpqhQL7etn8-NV6hVGLT7yBZYq7AwXnWfX3l_Cj48,2670
|
@@ -52,17 +53,18 @@ geo_activity_playground/importers/test_csv_parser.py,sha256=nOTVTdlzIY0TDcbWp7xN
|
|
52
53
|
geo_activity_playground/importers/test_directory.py,sha256=_fn_-y98ZyElbG0BRxAmGFdtGobUShPU86SdEOpuv-A,691
|
53
54
|
geo_activity_playground/importers/test_strava_api.py,sha256=7b8bl5Rh2BctCmvTPEhCadxtUOq3mfzuadD6F5XxRio,398
|
54
55
|
geo_activity_playground/webui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
55
|
-
geo_activity_playground/webui/app.py,sha256=
|
56
|
-
geo_activity_playground/webui/authenticator.py,sha256=
|
56
|
+
geo_activity_playground/webui/app.py,sha256=BJy34kychEIzWYc1romzZIpw5ZHl_MbQA6_1TX6P6MU,8268
|
57
|
+
geo_activity_playground/webui/authenticator.py,sha256=dhREYOu_TCD_nzFNuSlHIbf5K6TmwKdXtr1wxD8fBcc,1491
|
57
58
|
geo_activity_playground/webui/blueprints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
59
|
geo_activity_playground/webui/blueprints/activity_blueprint.py,sha256=EjaTe6VFkRpO9DEkHHurt5GDzAvHHUqgQgfBdiN239Q,26457
|
59
|
-
geo_activity_playground/webui/blueprints/auth_blueprint.py,sha256=
|
60
|
+
geo_activity_playground/webui/blueprints/auth_blueprint.py,sha256=3DkZAnPFd0s7YN7EUkApB6hgtU46Ll8PyYuZcNSiyHI,940
|
60
61
|
geo_activity_playground/webui/blueprints/bubble_chart_blueprint.py,sha256=xESHzYxlbhz4oNDuxV0A70eVKpFwz84pYC3q_YVZZg8,2812
|
61
62
|
geo_activity_playground/webui/blueprints/calendar_blueprint.py,sha256=4EIBZ8rdXEu3tbl1faVlRwHb8Qp0JuMc3eyxwMkq6g8,2848
|
62
63
|
geo_activity_playground/webui/blueprints/eddington_blueprints.py,sha256=8ctEZWIc0hWjVr3ezNTjxwDHO5M-XzUoupA69RrovB0,8896
|
63
64
|
geo_activity_playground/webui/blueprints/entry_views.py,sha256=Lzd-hkflmN3GY24qm6dHazIe78wxnQFdFTUsoZOUH-M,2978
|
64
65
|
geo_activity_playground/webui/blueprints/equipment_blueprint.py,sha256=26L2BM7lZo8rDf5Ipara5zA4tfSrvE18POqAZqjzH38,5659
|
65
|
-
geo_activity_playground/webui/blueprints/explorer_blueprint.py,sha256=
|
66
|
+
geo_activity_playground/webui/blueprints/explorer_blueprint.py,sha256=vsotoSS6G1HMXosVF3Ru6nNtap45OD3nTVQ-5EOZD8Y,21671
|
67
|
+
geo_activity_playground/webui/blueprints/export_blueprint.py,sha256=NO3jqRy3tmEdK0Ei5wQ1f6cRdEHJa4VvfVs1kY6AhgI,972
|
66
68
|
geo_activity_playground/webui/blueprints/heatmap_blueprint.py,sha256=iHI5YJYhX7ZOlzTgzl2efIRDzt3UMYCx7X4-LVd0MWk,8702
|
67
69
|
geo_activity_playground/webui/blueprints/photo_blueprint.py,sha256=sYGp2XVGodkAifGHbEqpIY-7bBH5R7G7Dwg4HqgxMSY,7269
|
68
70
|
geo_activity_playground/webui/blueprints/plot_builder_blueprint.py,sha256=7HrjpBM-608HSOh0i31Lmt7yDNMfWlEn6G7DlYqlV9w,3031
|
@@ -71,7 +73,7 @@ geo_activity_playground/webui/blueprints/settings_blueprint.py,sha256=FLKQ0JTThU
|
|
71
73
|
geo_activity_playground/webui/blueprints/square_planner_blueprint.py,sha256=xVaxJxmt8Dysl3UL9f2y__LVLtTH2Np1Ust4OSXKRAk,4746
|
72
74
|
geo_activity_playground/webui/blueprints/summary_blueprint.py,sha256=rK4LGR2Rpioy4wSqNYuyRn4WxaWeBLensJ3PmAd-ouY,11469
|
73
75
|
geo_activity_playground/webui/blueprints/tile_blueprint.py,sha256=YzZf9OrNdjhc1_j4MtO1DMcw1uCv29ueNsYd-mWqgbg,837
|
74
|
-
geo_activity_playground/webui/blueprints/upload_blueprint.py,sha256=
|
76
|
+
geo_activity_playground/webui/blueprints/upload_blueprint.py,sha256=3nJGGNYjB22aFXDlgCFMK8t0RRkqQi_Pr33H3DtVP5M,5177
|
75
77
|
geo_activity_playground/webui/columns.py,sha256=hSW8bFVKRUMBlWZYAN-tZ_tfED3VDQK75e4Zzw7_jZ0,642
|
76
78
|
geo_activity_playground/webui/flasher.py,sha256=Covc1D9cO_jjokRWnvyiXCc2tfp3aZ8XkNqFdA1AXtk,500
|
77
79
|
geo_activity_playground/webui/plot_util.py,sha256=5Uesjj-xcMskQX2z9viDZYHSxLGrH2a5dHA1ogsJW9U,261
|
@@ -103,6 +105,7 @@ geo_activity_playground/webui/static/leaflet.fullscreen.css,sha256=YTbhDGEH5amI_
|
|
103
105
|
geo_activity_playground/webui/static/leaflet.js,sha256=20nQCchB9co0qIjJZRGuk2_Z9VM-kNiyxNV1lvTlZBo,147552
|
104
106
|
geo_activity_playground/webui/static/leaflet.markercluster.js,sha256=WL6HHfYfbFEkZOFdsJQeY7lJG_E5airjvqbznghUzRw,33724
|
105
107
|
geo_activity_playground/webui/static/mstile-150x150.png,sha256=j1ANUQJ1Xi1DR2sGqYZztob2ypfGw04eNtGpN9SxExA,11964
|
108
|
+
geo_activity_playground/webui/static/server-side-explorer.js,sha256=TV8YIVgWnGt6slzneGcj4rfyst9MEkMpjbuyiIBfQRw,1643
|
106
109
|
geo_activity_playground/webui/static/site.webmanifest,sha256=G5wl5Ahfz6wyDt-Z7ea-ywG1WS1S7ZQ_QX9TM2ox6Lk,450
|
107
110
|
geo_activity_playground/webui/static/table-sort.min.js,sha256=sFeDrgkXTePr2ciJU9_mLh-Z8qtYhPIQMgOZtj0LwBY,8506
|
108
111
|
geo_activity_playground/webui/static/vega-embed@6,sha256=EtAqz74-xZ75o33UgiouBOKWG1u7Zxu-Zh0iIXFbmdo,60630
|
@@ -116,7 +119,7 @@ geo_activity_playground/webui/templates/activity/lines.html.j2,sha256=_ZDg1ruW-9
|
|
116
119
|
geo_activity_playground/webui/templates/activity/name.html.j2,sha256=7Wbh3IrVL5lMRve467H0P10Shn5FzGpaXLhV0H-X4Hk,2725
|
117
120
|
geo_activity_playground/webui/templates/activity/show.html.j2,sha256=obKXSvRJxpeo53k7aCUrrhJSus9msuPGStIQJQQHpes,10975
|
118
121
|
geo_activity_playground/webui/templates/activity/trim.html.j2,sha256=3oAXQab6QqWjGBC9KCvWNOVn8uRmxoDLj3hx_O63TXc,1836
|
119
|
-
geo_activity_playground/webui/templates/auth/index.html.j2,sha256=
|
122
|
+
geo_activity_playground/webui/templates/auth/index.html.j2,sha256=wzA0uxpiT1ktDadgnjvFXc9iUGMFm9GhjDkavl3S1h4,646
|
120
123
|
geo_activity_playground/webui/templates/bubble_chart/index.html.j2,sha256=yd7lWjtxxVmJZqCiXb0Y1gMEOQ7LQYJXEdpE7JB1OZY,1616
|
121
124
|
geo_activity_playground/webui/templates/calendar/index.html.j2,sha256=8dV9yeDwfv0Mm81mhiPHN5r3hdPUWl1Yye03x0Rqbo8,1601
|
122
125
|
geo_activity_playground/webui/templates/calendar/month.html.j2,sha256=IEhGqknL69okX5brMzTgZdnmrgUQLmGGkDE5zd7RG7s,2008
|
@@ -124,11 +127,11 @@ geo_activity_playground/webui/templates/eddington/distance.html.j2,sha256=TkMey-
|
|
124
127
|
geo_activity_playground/webui/templates/eddington/elevation_gain.html.j2,sha256=eE-xrhtwvtAohq5VXKZmeBjab3E0R7EdmCJlNTAvFAg,4803
|
125
128
|
geo_activity_playground/webui/templates/elevation_eddington/index.html.j2,sha256=Pgis0-yH5qtSwRnJ5H_Umjk1nxk-t-LnpHIqklezPS4,4823
|
126
129
|
geo_activity_playground/webui/templates/equipment/index.html.j2,sha256=wwrGmfCCBn-5CzMymi80hg3lNMZ7J1fAWWl_2zHeiMc,1845
|
127
|
-
geo_activity_playground/webui/templates/explorer/
|
128
|
-
geo_activity_playground/webui/templates/
|
130
|
+
geo_activity_playground/webui/templates/explorer/server-side.html.j2,sha256=zuYoUpW2IdnAxp3p5dHYQ2fOp-nXJ6e0FrbTCSeeMoc,3081
|
131
|
+
geo_activity_playground/webui/templates/export/index.html.j2,sha256=vxqpAm9KnT405Qz7q0_td-HZ4mCjcPR4Lp6EnIEWisg,1652
|
129
132
|
geo_activity_playground/webui/templates/heatmap/index.html.j2,sha256=uM-l4gmDKw6307ZH_zb8zroMTKBuOkrR0Bu4fTEJE0s,1231
|
130
133
|
geo_activity_playground/webui/templates/home.html.j2,sha256=EBLKVNgLYgTPzdFutoSkdlbu_UCCat5ItDFlYyRqcAg,2767
|
131
|
-
geo_activity_playground/webui/templates/page.html.j2,sha256=
|
134
|
+
geo_activity_playground/webui/templates/page.html.j2,sha256=B4kFT4L3J4PwN0K2UJb1DPPN8P7JPI_HzRvs9y2pusY,12284
|
132
135
|
geo_activity_playground/webui/templates/photo/map.html.j2,sha256=MWhqt5Q8ExiRhgxndcEnwngOj1qw0E0u4hKuiuY24Gg,1437
|
133
136
|
geo_activity_playground/webui/templates/photo/new.html.j2,sha256=GGLejO4ap6ZMe54jZP39ktSLkdw5j67bf5PTlHEK7qc,383
|
134
137
|
geo_activity_playground/webui/templates/plot_builder/edit.html.j2,sha256=x5Ki425me3HY6CcBQ37le9g8rCpbOxFVkdr0N_L84-g,2230
|
@@ -153,8 +156,8 @@ geo_activity_playground/webui/templates/square_planner/index.html.j2,sha256=-OnY
|
|
153
156
|
geo_activity_playground/webui/templates/summary/index.html.j2,sha256=1kTuwWvOM3McEdY8N5rKj-R4CC6uqswl7NsGVF8hsDA,9185
|
154
157
|
geo_activity_playground/webui/templates/upload/index.html.j2,sha256=I1Ix8tDS3YBdi-HdaNfjkzYXVVCjfUTe5PFTnap1ydc,775
|
155
158
|
geo_activity_playground/webui/templates/upload/reload.html.j2,sha256=YZWX5eDeNyqKJdQAywDBcU8DZBm22rRBbZqFjrFrCvQ,556
|
156
|
-
geo_activity_playground-0.
|
157
|
-
geo_activity_playground-0.
|
158
|
-
geo_activity_playground-0.
|
159
|
-
geo_activity_playground-0.
|
160
|
-
geo_activity_playground-0.
|
159
|
+
geo_activity_playground-1.0.0.dist-info/LICENSE,sha256=4RpAwKO8bPkfXH2lnpeUW0eLkNWglyG4lbrLDU_MOwY,1070
|
160
|
+
geo_activity_playground-1.0.0.dist-info/METADATA,sha256=goJ98tnDHWY17fpoRf_tOfxxdW38OYGKds34c86_R0c,1890
|
161
|
+
geo_activity_playground-1.0.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
162
|
+
geo_activity_playground-1.0.0.dist-info/entry_points.txt,sha256=pbNlLI6IIZIp7nPYCfAtiSiz2oxJSCl7DODD6SPkLKk,81
|
163
|
+
geo_activity_playground-1.0.0.dist-info/RECORD,,
|
@@ -1,148 +0,0 @@
|
|
1
|
-
{% extends "page.html.j2" %}
|
2
|
-
|
3
|
-
{% block container %}
|
4
|
-
|
5
|
-
<h1>Explorer Tiles</h1>
|
6
|
-
|
7
|
-
{% if zoom_level_not_generated %}
|
8
|
-
<p>You try to access explorer tiles for a level that hasn't been generated before. That is not a problem, we just don't
|
9
|
-
generate all levels to save a bit of time. If you want to have it, just enable it!</p>
|
10
|
-
|
11
|
-
<a href="{{ url_for('.enable_zoom_level', zoom=zoom_level_not_generated) }}" class="btn btn-primary">Enable Zoom {{
|
12
|
-
zoom_level_not_generated }}</a>
|
13
|
-
{% else %}
|
14
|
-
|
15
|
-
<div class="row mb-3">
|
16
|
-
<div class="col">
|
17
|
-
<p>You have {{ explored.num_tiles }} explored tiles. There are {{ explored.num_cluster_tiles }} cluster tiles in
|
18
|
-
total. Your largest cluster consists of {{ explored.max_cluster_size }} tiles. Your largest square has size
|
19
|
-
{{
|
20
|
-
explored.square_size }}².
|
21
|
-
</p>
|
22
|
-
<p>Open the <a
|
23
|
-
href="{{ url_for('square_planner.index', zoom=zoom, x=explored.square_x, y=explored.square_y, size=explored.square_size) }}">Square
|
24
|
-
Planner</a> to plan the next extension.</p>
|
25
|
-
</div>
|
26
|
-
</div>
|
27
|
-
|
28
|
-
<div class="row mb-3">
|
29
|
-
<div class="col">
|
30
|
-
<h2>Map with explored tiles</h2>
|
31
|
-
</div>
|
32
|
-
</div>
|
33
|
-
|
34
|
-
<div class="row mb-3">
|
35
|
-
<div class="col">
|
36
|
-
<div class="btn-group mb-3" role="group">
|
37
|
-
<button type="button" class="btn btn-primary" onclick="changeColor('cluster')">Cluster</button>
|
38
|
-
<button type="button" class="btn btn-primary" onclick="changeColor('first')">First Visit</button>
|
39
|
-
<button type="button" class="btn btn-primary" onclick="changeColor('last')">Last Visit</button>
|
40
|
-
</div>
|
41
|
-
<div id="explorer-map" class="mb-1" style="height: 800px;"></div>
|
42
|
-
<p>Download tiles in visible area: <a href="#" onclick="downloadAs('explored.geojson')">Explored as GeoJSON</a>,
|
43
|
-
<a href="#" onclick="downloadAs('explored.gpx')"">Explored as GPX</a>, <a href=" #"
|
44
|
-
onclick="downloadAs('missing.geojson')">Missing as GeoJSON</a> or <a href="#"
|
45
|
-
onclick="downloadAs('missing.gpx')"">Missing as GPX</a>.</p>
|
46
|
-
<script>
|
47
|
-
function onEachFeature(feature, layer) {
|
48
|
-
if (feature.properties && feature.properties.first_visit) {
|
49
|
-
let lines = [
|
50
|
-
`<dt>Tile</dt>`,
|
51
|
-
`<dd>${feature.properties.tile}</dd>`,
|
52
|
-
`<dt>First visit</dt>`,
|
53
|
-
`<dd>${feature.properties.first_visit}</br><a href=/activity/${feature.properties.first_activity_id}>${feature.properties.first_activity_name}</a></dd>`,
|
54
|
-
`<dt>Last visit</dt>`,
|
55
|
-
`<dd>${feature.properties.last_visit}</br><a href=/activity/${feature.properties.last_activity_id}>${feature.properties.last_activity_name}</a></dd>`,
|
56
|
-
`<dt>Number of visits</dt>`,
|
57
|
-
`<dd>${feature.properties.num_visits}</dd>`,
|
58
|
-
]
|
59
|
-
if (feature.properties.this_cluster_size) {
|
60
|
-
lines.push(`<dt>This cluster size</dt><dd>${feature.properties.this_cluster_size}</dd>`)
|
61
|
-
}
|
62
|
-
layer.bindPopup('<dl>' + lines.join('') + '</dl>')
|
63
|
-
}
|
64
|
-
}
|
65
|
-
|
66
|
-
let explorer_geojson = {{ explored.explored_geojson| safe}}
|
67
|
-
let square_geojson = {{ explored.square_geojson | safe }}
|
68
|
-
let map = L.map('explorer-map', {
|
69
|
-
fullscreenControl: true,
|
70
|
-
center: [{{ center.latitude }}, {{ center.longitude }}],
|
71
|
-
zoom: 10
|
72
|
-
})
|
73
|
-
let tile_layer = L.tileLayer('/tile/grayscale/{z}/{x}/{y}.png', {
|
74
|
-
maxZoom: 19,
|
75
|
-
attribution: '{{ map_tile_attribution|safe }}'
|
76
|
-
});
|
77
|
-
tile_layer.addTo(map)
|
78
|
-
let explorer_layer_cluster_color = L.geoJSON(explorer_geojson, {
|
79
|
-
style: function (feature) {
|
80
|
-
return {
|
81
|
-
color: feature.properties.color, fillColor: feature.properties.color,
|
82
|
-
weight: 0.5
|
83
|
-
}
|
84
|
-
},
|
85
|
-
onEachFeature: onEachFeature
|
86
|
-
}).addTo(map)
|
87
|
-
let explorer_layer_first_age_color = L.geoJSON(explorer_geojson, {
|
88
|
-
style: function (feature) {
|
89
|
-
return {
|
90
|
-
color: " #440154", fillColor: feature.properties.first_age_color, weight: 0.5
|
91
|
-
}
|
92
|
-
},
|
93
|
-
onEachFeature: onEachFeature
|
94
|
-
}); let explorer_layer_last_age_color = L.geoJSON(explorer_geojson, {
|
95
|
-
style:
|
96
|
-
function (feature) {
|
97
|
-
return {
|
98
|
-
color: "#440154", fillColor: feature.properties.last_age_color, weight:
|
99
|
-
0.5
|
100
|
-
}
|
101
|
-
}, onEachFeature: onEachFeature
|
102
|
-
}); let bbox = {{ center.bbox| safe }}; if (bbox) {
|
103
|
-
map.fitBounds(L.geoJSON(bbox).getBounds())
|
104
|
-
}; let explorer_square_layer = L.geoJSON(square_geojson, {
|
105
|
-
style: function (feature) { return { color: "blue", fill: false, weight: 2 } }
|
106
|
-
}).addTo(map)
|
107
|
-
active_layer = explorer_layer_cluster_color; function changeColor(method) {
|
108
|
-
map.removeLayer(active_layer)
|
109
|
-
if (method == "cluster") { active_layer = explorer_layer_cluster_color } else if (method == "first") {
|
110
|
-
active_layer = explorer_layer_first_age_color
|
111
|
-
} else if (method == "last") {
|
112
|
-
active_layer = explorer_layer_last_age_color
|
113
|
-
} map.addLayer(active_layer)
|
114
|
-
} function downloadAs(suffix) {
|
115
|
-
bounds = map.getBounds(); zoom = "{{ zoom }}"
|
116
|
-
window.location.href = `/explorer/${zoom}/${bounds.getNorth()}/${bounds.getEast()}/${bounds.getSouth()}/${bounds.getWest()}/${suffix}`
|
117
|
-
} </script>
|
118
|
-
<p></p><button type="button" class="btn btn-secondary btn-sm"
|
119
|
-
onclick="map.removeLayer(tile_layer)">Remove map background</button>
|
120
|
-
</div>
|
121
|
-
</div>
|
122
|
-
|
123
|
-
<div class="row mb-3">
|
124
|
-
<div class="col">
|
125
|
-
<h2>Tile history</h2>
|
126
|
-
</div>
|
127
|
-
</div>
|
128
|
-
|
129
|
-
<div class="row mb-3">
|
130
|
-
<div class="col-md-4">
|
131
|
-
{% if plot_tile_evolution|length > 0 %}
|
132
|
-
{{ vega_direct("plot_tile_evolution", plot_tile_evolution) }}
|
133
|
-
{% endif %}
|
134
|
-
</div>
|
135
|
-
<div class="col-md-4">
|
136
|
-
{% if plot_cluster_evolution|length > 0 %}
|
137
|
-
{{ vega_direct("plot_cluster_evolution", plot_cluster_evolution) }}
|
138
|
-
{% endif %}
|
139
|
-
</div>
|
140
|
-
<div class="col-md-4">
|
141
|
-
{% if plot_square_evolution|length > 0 %}
|
142
|
-
{{ vega_direct("plot_square_evolution", plot_square_evolution) }}
|
143
|
-
{% endif %}
|
144
|
-
</div>
|
145
|
-
</div>
|
146
|
-
|
147
|
-
{% endif %}
|
148
|
-
{% endblock %}
|
{geo_activity_playground-0.45.0.dist-info → geo_activity_playground-1.0.0.dist-info}/LICENSE
RENAMED
File without changes
|
File without changes
|
File without changes
|