@christianriedl/media 1.0.248 → 1.0.250

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.
package/dist/iMedia.d.ts CHANGED
@@ -237,6 +237,23 @@ export interface IPhotoSelection {
237
237
  rating: number;
238
238
  criteria: string;
239
239
  }
240
+ export interface IPhotoMarker {
241
+ lat: number;
242
+ lng: number;
243
+ num: number;
244
+ multiple: boolean;
245
+ key?: string;
246
+ photo?: IPictureFile;
247
+ }
248
+ export interface IPhotoRegion {
249
+ latLength: number;
250
+ lngLength: number;
251
+ latFrom: number;
252
+ latTo: number;
253
+ lngFrom: number;
254
+ lngTo: number;
255
+ key?: string;
256
+ }
240
257
  export interface IDocumentInfo {
241
258
  name: string;
242
259
  date: Date;
@@ -1,5 +1,5 @@
1
1
  import { IValueText } from '@christianriedl/utils';
2
- import { EMediaType, EItemType, IMediaInfo, IMediaFolder, IPictureFile, IVideoFile, IMediaListEntry, ITranscodeParams, IAudioInfo, IMediaService } from "./iMedia";
2
+ import { EMediaType, EItemType, IMediaInfo, IMediaFolder, IPictureFile, IVideoFile, IMediaListEntry, ITranscodeParams, IAudioInfo, IMediaService, IPhotoMarker } from "./iMedia";
3
3
  export declare class MediaHelper {
4
4
  static albumNames: string[];
5
5
  static albumNamesNoLocation: string[];
@@ -21,6 +21,8 @@ export declare class MediaHelper {
21
21
  static getPhotoTitles(mediaService: IMediaService, rating: number, withLocation: boolean, withPerson: boolean): Promise<string[]>;
22
22
  static inMediaList(list: IMediaListEntry, regex: RegExp): number[] | undefined;
23
23
  static searchPictures(mediaService: IMediaService, titlePattern: string, searchPerson: boolean, searchLocation: boolean, rating: number, maxPictures?: number): Promise<IPictureFile[]>;
24
+ static searchPicturesGPS(mediaService: IMediaService, latFrom: number, latTo: number, lngFrom: number, lngTo: number, rating: number, maxPictures?: number): Promise<IPictureFile[]>;
25
+ static createMarker(fotos: IPictureFile[], latLength: number, lngLength: number, markersPerDim: number, maxMultiple: number): IPhotoMarker[];
24
26
  static getPhotoDisplayName(folder: IMediaFolder, pictureFile: IPictureFile, pictureLocations?: IMediaListEntry, album?: IMediaFolder): string;
25
27
  static getStars(rating: number): string;
26
28
  }
@@ -1,4 +1,4 @@
1
- import { EMediaType, EItemType } from "./iMedia";
1
+ import { EMediaType, EItemType, EPictureFlags } from "./iMedia";
2
2
  export class MediaHelper {
3
3
  static albumNames;
4
4
  static albumNamesNoLocation;
@@ -274,6 +274,75 @@ export class MediaHelper {
274
274
  }
275
275
  return result;
276
276
  }
277
+ static async searchPicturesGPS(mediaService, latFrom, latTo, lngFrom, lngTo, rating, maxPictures = 200) {
278
+ const root = await mediaService.getPhotosByCriteria(MediaHelper.getStars(rating), 'ye');
279
+ const result = [];
280
+ let count = 0;
281
+ latFrom *= 1000000;
282
+ latTo *= 1000000;
283
+ lngFrom *= 1000000;
284
+ lngTo *= 1000000;
285
+ for (const yearFolder of root.folders) {
286
+ mediaService.prepare(yearFolder);
287
+ for (const albumFolder of yearFolder.folders) {
288
+ mediaService.prepare(albumFolder);
289
+ const album = await mediaService.getPhotos(albumFolder);
290
+ if (album) {
291
+ for (const photo of album.files) {
292
+ let match = false;
293
+ if (photo.flags & EPictureFlags.Has_Gps) {
294
+ if (photo.latitude >= latFrom && photo.latitude <= latTo &&
295
+ photo.longitude >= lngFrom && photo.longitude <= lngTo) {
296
+ count++;
297
+ if (result.length < maxPictures)
298
+ result.push(photo);
299
+ }
300
+ }
301
+ }
302
+ }
303
+ }
304
+ }
305
+ if (result.length >= maxPictures) {
306
+ alert(`Too many pictures (${count}) found, limit : ${result.length}`);
307
+ }
308
+ return result;
309
+ }
310
+ static createMarker(fotos, latLength, lngLength, markersPerDim, maxMultiple) {
311
+ const fms = [];
312
+ if (fotos) {
313
+ const foundDict = {};
314
+ const latDelta = Math.max(0.001, latLength / markersPerDim) * 1000000;
315
+ const lngDelta = Math.max(0.001, lngLength / markersPerDim) * 1000000;
316
+ for (let i = 0; i < fotos.length; i++) {
317
+ const foto = fotos[i];
318
+ const lat = Math.round(foto.latitude / latDelta);
319
+ const lng = Math.round(foto.longitude / lngDelta);
320
+ const key = lat.toString() + '|' + lng.toString();
321
+ const arr = foundDict[key];
322
+ if (arr)
323
+ arr.push(foto);
324
+ else
325
+ foundDict[key] = [foto];
326
+ }
327
+ let i = 0;
328
+ for (const key in foundDict) {
329
+ const arr = foundDict[key];
330
+ if (arr) {
331
+ if (arr.length > maxMultiple) {
332
+ const f = arr[0];
333
+ fms.push({ lat: f.latitude / 1000000, lng: f.longitude / 1000000, num: -arr.length, key, multiple: true });
334
+ }
335
+ else {
336
+ for (let j = 0; j < arr.length; j++) { // First the not available
337
+ const f = arr[j];
338
+ fms.push({ lat: f.latitude / 1000000, lng: f.longitude / 1000000, num: j, photo: f, multiple: j > 0 });
339
+ }
340
+ }
341
+ }
342
+ }
343
+ }
344
+ return fms;
345
+ }
277
346
  static getPhotoDisplayName(folder, pictureFile, pictureLocations, album) {
278
347
  let emptyName = "";
279
348
  const url = folder.url + pictureFile.url;
@@ -1 +1 @@
1
- {"version":3,"file":"mediaHelper.js","sourceRoot":"","sources":["../src/mediaHelper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mediaHelper.js","sourceRoot":"","sources":["../src/mediaHelper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@christianriedl/media",
3
- "version": "1.0.248",
3
+ "version": "1.0.250",
4
4
  "description": "RIC media interfaces",
5
5
 
6
6
  "main": "dist/index.js",
@@ -18,8 +18,8 @@
18
18
  "author": "Christian Riedl",
19
19
  "license": "ISC",
20
20
  "dependencies": {
21
- "@christianriedl/utils": "^1.0.114",
22
- "@christianriedl/rest": "^1.0.66",
21
+ "@christianriedl/utils": "^1.0.115",
22
+ "@christianriedl/rest": "^1.0.84",
23
23
  "@christianriedl/epg": "^1.0.43"
24
24
  },
25
25
  "devDependencies": {
@@ -0,0 +1,276 @@
1
+ /// <reference types="@types/google.maps" />
2
+ <script setup lang="ts">
3
+ import { inject, ref, toRef, computed, onMounted, watch } from 'vue';
4
+ import { GoogleMap } from 'vue3-google-map'
5
+ import { authorizeSymbol } from '@christianriedl/rest';
6
+ import { IPhotoMarker, IPhotoRegion, IPictureFile, getMediaBinSymbol } from '@christianriedl/media';
7
+
8
+ const props = defineProps<{ location: string, zoom: number, selectRegion?: IPhotoRegion, fotos?: IPhotoMarker[] }>();
9
+ const emits = defineEmits<{ (e: 'select', value: IPhotoRegion): void }>();
10
+
11
+ const authorize = inject(authorizeSymbol)!;
12
+ const apiKey = "AIzaSyBXXPRWgozn5kP40fmdk5f6xLRYkImPI9w";
13
+ //const apiKey = authorize.keyGoogleMaps;
14
+ const getMediaService = inject(getMediaBinSymbol)!;
15
+ const mediaService = getMediaService() ;
16
+
17
+ const mapRef = ref(GoogleMap);
18
+ const mapSizeStyle = computed(() => {
19
+ const gpsHeight = Math.round(window.innerHeight * 0.8);
20
+ return `height: ${gpsHeight}px`;
21
+ });
22
+
23
+ let api: typeof google.maps;
24
+ let map: google.maps.Map;
25
+ let geocoder: google.maps.Geocoder;
26
+
27
+ let posMarker: google.maps.marker.AdvancedMarkerElement | null = null;
28
+
29
+ // select
30
+ let selectionRect: google.maps.Rectangle | null = null;
31
+ let lastMapBounds: google.maps.LatLngBounds | null = null;
32
+ let zoomChanged = false;
33
+ let rectTimer = 0;
34
+ const fotoMarkers: google.maps.marker.AdvancedMarkerElement[] = [];
35
+ const groupMarkers: google.maps.marker.AdvancedMarkerElement[] = [];
36
+ const fotosRef = toRef(props, "fotos");
37
+ const locationRef = toRef(props, "location");
38
+
39
+ // show photo
40
+ const showPhoto = ref(false);
41
+ const photoHeight = ref(0);
42
+ const photoWidth = ref(0);
43
+ const photoLeft = ref({ 'left': '0px' });
44
+ let photoUrl = "";
45
+
46
+ watch(fotosRef, () => showFotos(props.fotos!));
47
+ watch(locationRef, () => {
48
+ if (geocoder && map) {
49
+ searchLocation(props.location)
50
+ .then((loc) => {
51
+ if (loc) {
52
+ map.setCenter(loc);
53
+ }
54
+ })
55
+ }
56
+ });
57
+
58
+ onMounted(() => {
59
+ if (mapRef.value) {
60
+ if (mapRef.value.ready && mapRef.value.api) {
61
+ start();
62
+ }
63
+ else {
64
+ const readyRef = toRef(mapRef.value, 'ready');
65
+ const stopWatchingOnMapLoad = watch(readyRef, (newReady) => {
66
+ setTimeout(stopWatchingOnMapLoad, 0);
67
+ start();
68
+ });
69
+ }
70
+ }
71
+ });
72
+
73
+ function start(): void {
74
+ api = mapRef.value.api;
75
+ map = mapRef.value.map;
76
+ geocoder = new google.maps.Geocoder();
77
+
78
+ if (props.location) {
79
+ if (props.location.includes('|')) {
80
+ const arr = props.location.split('|');
81
+ const loc = new google.maps.LatLng(Number(arr[0]), Number(arr[1]));
82
+ map.setCenter(loc);
83
+ if (props.selectRegion)
84
+ selectionRect = initSelect(loc);
85
+ else
86
+ posMarker = createPin(loc, 'P', 'black', 'red');
87
+ }
88
+ else {
89
+ searchLocation(props.location)
90
+ .then((loc) => {
91
+ if (loc) {
92
+ map.setCenter(loc);
93
+ if (props.selectRegion)
94
+ selectionRect = initSelect(loc);
95
+ else
96
+ posMarker = createPin(loc, 'P', 'black', 'red');
97
+ }
98
+ });
99
+ }
100
+ }
101
+ }
102
+ function initSelect(loc: google.maps.LatLng): google.maps.Rectangle {
103
+ const bounds = props.selectRegion!.latFrom ?
104
+ new google.maps.LatLngBounds(new google.maps.LatLng(props.selectRegion!.latFrom, props.selectRegion!.lngFrom),
105
+ new google.maps.LatLng(props.selectRegion!.latTo, props.selectRegion!.lngTo)) :
106
+ new google.maps.LatLngBounds(loc, new google.maps.LatLng(loc.lat() + 0.002, loc.lng() + 0.003));
107
+ if (props.selectRegion!.latFrom) {
108
+ map.setCenter(bounds.getCenter())
109
+ }
110
+ const rect = new google.maps.Rectangle({
111
+ strokeColor: "#007bff",
112
+ strokeOpacity: 0.8,
113
+ strokeWeight: 2,
114
+ fillColor: "#007bff",
115
+ fillOpacity: 0.2,
116
+ map: map,
117
+ bounds: bounds,
118
+ editable: true,
119
+ draggable: true
120
+ });
121
+
122
+ rect.addListener("bounds_changed", () => {
123
+ if (rectTimer > 0)
124
+ window.clearTimeout(rectTimer);
125
+ rectTimer = window.setTimeout(() => {
126
+ const rb = rect.getBounds();
127
+ if (rb) {
128
+ const reg = buildRegion(rb);
129
+ emits('select', reg);
130
+ }
131
+ }, 200)
132
+ });
133
+ map.addListener("zoom_changed", () => {
134
+ zoomChanged = true;
135
+ });
136
+ map.addListener("idle", () => { // required to keep rect on the same place on screen (only for pan)
137
+ const rb = rect.getBounds()!;
138
+ const mb = map.getBounds()!;
139
+ if (zoomChanged) {
140
+ zoomChanged = false;
141
+ if (rb) {
142
+ const reg = buildRegion(rb); // Recompute the factors fxxx
143
+ emits('select', reg);
144
+ }
145
+ lastMapBounds = mb;
146
+ return;
147
+ }
148
+ if (lastMapBounds && !boundContainsObject(mb, rb)) {
149
+ const latdiff = mb.getSouthWest().lat() - lastMapBounds.getSouthWest().lat();
150
+ const lngdiff = mb.getSouthWest().lng() - lastMapBounds.getSouthWest().lng();
151
+ const newRectbounds = new google.maps.LatLngBounds(
152
+ new google.maps.LatLng(rb.getSouthWest().lat() + latdiff, rb.getSouthWest().lng() + lngdiff),
153
+ new google.maps.LatLng(rb.getNorthEast().lat() + latdiff, rb.getNorthEast().lng() + lngdiff)
154
+ );
155
+ rect.setBounds(newRectbounds)!;
156
+ }
157
+ lastMapBounds = mb;
158
+ });
159
+ return rect;
160
+ }
161
+ function buildRegion(rb: google.maps.LatLngBounds) : IPhotoRegion {
162
+ const mb = map.getBounds()!;
163
+ const latw = mb.getSouthWest().lat();
164
+ const lngw = mb.getSouthWest().lng();
165
+ const reg: IPhotoRegion = {
166
+ latLength: mb.getNorthEast().lat() - latw,
167
+ lngLength: mb.getNorthEast().lng() - lngw,
168
+ latFrom: rb.getSouthWest().lat(), latTo: rb.getNorthEast().lat(),
169
+ lngFrom: rb.getSouthWest().lng(), lngTo: rb.getNorthEast().lng()
170
+ };
171
+ return reg;
172
+ }
173
+ function showFotos(fotos: IPhotoMarker[]) {
174
+ let i: number;
175
+ let gi = 0;
176
+ let fi = 0;
177
+ for (; fi < fotoMarkers.length; fi++) {
178
+ fotoMarkers[fi].map = null;
179
+ }
180
+ for (; gi < groupMarkers.length; gi++) {
181
+ groupMarkers[gi].map = null;
182
+ }
183
+ fotoMarkers.length = 0;
184
+ groupMarkers.length = 0;
185
+ for (i = 0; i < fotos.length; i++) {
186
+ const foto = fotos[i];
187
+ const loc = new google.maps.LatLng(foto.lat, foto.lng);
188
+ let m: google.maps.marker.AdvancedMarkerElement;
189
+ if (foto.num >= 0) {
190
+ const text = foto.multiple ? (foto.num.toString() + '+') : "";
191
+ const background = "blue";
192
+ m = createPin(loc, text, "white", background);
193
+ m.gmpClickable = true;
194
+ if (foto.multiple)
195
+ m.gmpDraggable = true;
196
+ m.addListener('gmp-click', () => {
197
+ displayPhoto(foto.photo!);
198
+ });
199
+ fotoMarkers.push(m);
200
+ }
201
+ else {
202
+ const text = '*' + (-foto.num).toString();
203
+ const background = "orange";
204
+ m = createPin(loc, text, "white", background);
205
+ if (foto.key) {
206
+ m.gmpClickable = true;
207
+ m.addListener('gmp-click', () => {
208
+ const mb = map.getBounds()!;
209
+ const reg: IPhotoRegion = {
210
+ latLength: mb.getNorthEast().lat() - mb.getSouthWest().lat(),
211
+ lngLength: mb.getNorthEast().lng() - mb.getSouthWest().lng(),
212
+ latFrom: 0, latTo: 0, lngFrom: 0, lngTo: 0, key: foto.key
213
+ };
214
+ emits('select', reg);
215
+ });
216
+ }
217
+ groupMarkers.push(m);
218
+ }
219
+ }
220
+ }
221
+ function displayPhoto(photo: IPictureFile) {
222
+ let maxHeight = window.innerHeight * 0.8;
223
+ const fac = (photo.height > maxHeight) ? (maxHeight / photo.height) : 1;
224
+ let left = Math.floor((window.innerWidth - photo.width * fac) / 2);
225
+ if (left < 0) left = 0;
226
+ photoLeft.value = { 'left': left + 'px' };
227
+ photoHeight.value = Math.floor(photo.height * fac);
228
+ photoWidth.value = Math.floor(photo.width * fac);
229
+ const albumUrl = mediaService.getFolder(photo.dlnaParentId).url;
230
+ photoUrl = mediaService.getPhotoUrl(albumUrl, photo.url, `${0}x${photoHeight.value}x${photo.orientation}x70`);
231
+ showPhoto.value = true;
232
+ }
233
+ function createPin(loc: google.maps.LatLng, text: string, color: string, background: string): google.maps.marker.AdvancedMarkerElement {
234
+ const pinGlyph = new google.maps.marker.PinElement({
235
+ background: background,
236
+ glyphColor: color,
237
+ glyph: text
238
+ });
239
+ const option: google.maps.marker.AdvancedMarkerElementOptions = {
240
+ position: loc,
241
+ map: map,
242
+ content: pinGlyph.element
243
+ };
244
+ const m = new google.maps.marker.AdvancedMarkerElement(option);
245
+ return m;
246
+ }
247
+ function boundContainsObject(cont: google.maps.LatLngBounds, obj: google.maps.LatLngBounds): boolean {
248
+ return (cont.contains(obj.getNorthEast()) && cont.contains(obj.getSouthWest()))
249
+ }
250
+ async function searchLocation(location: string): Promise<google.maps.LatLng|null> {
251
+ const result = await geocoder.geocode({ address: location });
252
+ if (result && result.results && result.results.length > 0) {
253
+ return result.results[0].geometry.location;
254
+ }
255
+ return null;
256
+ }
257
+ </script>
258
+
259
+ <template>
260
+ <v-container fluid>
261
+ <google-map ref="mapRef" class="map" :style="mapSizeStyle" :apiKey="apiKey" mapId="60c7744a5bdbb04ae71bd377" :zoom="props.zoom">
262
+ </google-map>
263
+ <v-dialog v-model="showPhoto">
264
+ <v-card :style="photoLeft" :height="photoHeight + 50" :max-width="photoWidth">
265
+ <v-card-text>
266
+ <v-img :src="photoUrl"></v-img>
267
+ </v-card-text>
268
+ <v-card-actions>
269
+ <v-btn size="large" @click="showPhoto = false">
270
+ <v-icon icon="$back"></v-icon>
271
+ </v-btn>
272
+ </v-card-actions>
273
+ </v-card>
274
+ </v-dialog>
275
+ </v-container>
276
+ </template>
@@ -1,12 +1,13 @@
1
1
  <script setup lang="ts">
2
- import { inject, ref, computed, onMounted, StyleValue } from 'vue';
2
+ import { inject, ref, shallowRef, computed, onMounted, StyleValue } from 'vue';
3
3
  import { useRouter, useRoute } from 'vue-router';
4
4
  import { IAppState, appStateSymbol, IAppConfig, appConfigSymbol, EDevice, Helper } from '@christianriedl/utils';
5
5
  import { IRestResult, IValueResult } from '@christianriedl/rest';
6
6
  import { EOrientation, EMediaType, IMediaFolder, IPictureFile, IMediaService, IMediaAppConfig,
7
- EPictureFlags, getMediaBinSymbol, MediaHelper
7
+ EPictureFlags, getMediaBinSymbol, MediaHelper, IPhotoRegion, IPhotoMarker
8
8
  } from '@christianriedl/media';
9
9
  import PhotoDownload from '../components/PhotoDownload.vue';
10
+ import PhotoMap from '../components/PhotoMap.vue';
10
11
 
11
12
  const appState = inject(appStateSymbol)!;
12
13
  const appConfig = inject(appConfigSymbol)!;
@@ -32,7 +33,20 @@
32
33
  const folder = ref<IMediaFolder | null>(null);
33
34
  const selectMode = ref<boolean>(false);
34
35
  const showDownload = ref(false);
36
+ const showLocation = ref(false);
35
37
  const showText = ref("SHOW");
38
+ let selectedFotos: IPictureFile[] | null = null;
39
+ // GPS selection
40
+ const center = ref("Wien");
41
+ const location = ref("");
42
+ const zoom = 14;
43
+ const maxMultiple = 10;
44
+ const markersPerDim = 40;
45
+ const showGps = ref(false);
46
+ const foundFotos = shallowRef<IPhotoMarker[]>([]);
47
+ let latLength = 0;
48
+ let lngLength = 0;
49
+ let selectedRegion: IPhotoRegion = { latLength: 0, lngLength: 0, latFrom: 0, lngFrom: 0, latTo: 0, lngTo: 0 };
36
50
 
37
51
  onMounted(async () => {
38
52
  //if (mediaAppConfig.useMediaBin) {
@@ -62,7 +76,7 @@
62
76
  withPerson.value = true;
63
77
  if (route.query.loc !== undefined)
64
78
  withLocation.value = true;
65
- onSearch();
79
+ onShow();
66
80
  return;
67
81
  }
68
82
  }
@@ -74,13 +88,15 @@
74
88
  async function onTitleChanged() {
75
89
  if (isMobile || title.value.length < 3)
76
90
  return;
77
- const list = await MediaHelper.searchPictures (mediaService, title.value, withPerson.value, withLocation.value, mediaService.photoSelection.rating, 100000);
78
- showText.value = `SHOW ${list.length}`;
91
+ selectedFotos = await MediaHelper.searchPictures (mediaService, title.value, withPerson.value, withLocation.value, mediaService.photoSelection.rating, 100000);
92
+ showText.value = `SHOW ${selectedFotos.length}`;
79
93
  }
80
- async function onSearch() {
81
- const list = await MediaHelper.searchPictures (mediaService, title.value, withPerson.value, withLocation.value, mediaService.photoSelection.rating, mediaAppConfig.pictureSearchLimit);
82
- showText.value = `SHOW ${list.length}`;
83
- photos.value.splice(0, photos.value.length, ...list);
94
+ async function onShow() {
95
+ if (!selectedFotos) {
96
+ selectedFotos = await MediaHelper.searchPictures (mediaService, title.value, withPerson.value, withLocation.value, mediaService.photoSelection.rating, mediaAppConfig.pictureSearchLimit);
97
+ showText.value = `SHOW ${selectedFotos.length}`;
98
+ }
99
+ photos.value.splice(0, photos.value.length, ...selectedFotos);
84
100
  console.log(photos.value.length);
85
101
  }
86
102
  function onClick(item: IPictureFile) {
@@ -142,6 +158,41 @@
142
158
  url += '&orientation=' + Number(image.orientation);
143
159
  return encodeURI(url);
144
160
  }
161
+ function onGps() {
162
+ showGps.value = true;
163
+ }
164
+ function onGoTo() {
165
+ showLocation.value = false;
166
+ center.value = location.value;
167
+ }
168
+ async function onCloseGps () {
169
+ showGps.value = false;
170
+ if (selectedRegion) {
171
+ selectedFotos = await MediaHelper.searchPicturesGPS(mediaService, selectedRegion.latFrom, selectedRegion.latTo, selectedRegion.lngFrom, selectedRegion.lngTo, mediaService.photoSelection.rating);
172
+ showText.value = `SHOW ${selectedFotos.length}`;
173
+ }
174
+ }
175
+ async function onGpsSelect (region: IPhotoRegion) {
176
+ latLength = region.latLength;
177
+ lngLength = region.lngLength;
178
+ if (region.key) {
179
+ const arr = region.key.split('|');
180
+ const latDelta = Math.max(0.001, latLength / markersPerDim);
181
+ const lngDelta = Math.max(0.001, lngLength / markersPerDim);
182
+ const lat = Number(arr[0]) * latDelta;
183
+ const lng = Number(arr[1]) * lngDelta;
184
+ selectedFotos = await MediaHelper.searchPicturesGPS(mediaService, lat, lat + latDelta, lng, lng + lngDelta, mediaService.photoSelection.rating);
185
+ showText.value = `SHOW ${selectedFotos.length}`;
186
+ photos.value.splice(0, photos.value.length, ...selectedFotos);
187
+ console.log(photos.value.length);
188
+ showGps.value = false;
189
+ }
190
+ else {
191
+ selectedRegion = region;
192
+ selectedFotos = await MediaHelper.searchPicturesGPS(mediaService, region.latFrom, region.latTo, region.lngFrom, region.lngTo, mediaService.photoSelection.rating);
193
+ foundFotos.value = MediaHelper.createMarker(selectedFotos, latLength, lngLength, markersPerDim, maxMultiple);
194
+ }
195
+ }
145
196
  </script>
146
197
 
147
198
  <template>
@@ -174,8 +225,9 @@
174
225
  <v-checkbox v-model="withPerson" hide-details density="compact" label="Pers" @update:modelValue="onLocPersChanged"></v-checkbox>
175
226
  </v-col>
176
227
  <v-col cols="2">
177
- <v-btn v-if="isMobile" icon="$search" variant="tonal" @click="onSearch"></v-btn>
178
- <v-btn v-else prepend-icon="$search" variant="tonal" @click="onSearch">{{showText}}</v-btn>
228
+ <v-btn v-if="isMobile" icon="$search" variant="tonal" @click="onShow"></v-btn>
229
+ <v-btn v-else prepend-icon="$search" variant="tonal" @click="onShow">{{showText}}</v-btn>
230
+ <v-btn v-if="!isMobile" prepend-icon="$gps" variant="tonal" @click="onGps">GPS</v-btn>
179
231
  </v-col>
180
232
  </v-row>
181
233
  <v-row v-if="mediaAppConfig.showThumbnailText" dense align="center" >
@@ -202,6 +254,35 @@
202
254
  <v-dialog v-model="showDownload" v-click-outside="onCloseDownload">
203
255
  <photo-download :folder="folder!" :photos="photos" @close="onCloseDownload"></photo-download>
204
256
  </v-dialog>
257
+ <v-dialog v-model="showGps">
258
+ <v-card>
259
+ <v-card-text>
260
+ <photo-map :location="center" :zoom="zoom" :selectRegion="selectedRegion" :fotos="foundFotos" @select="onGpsSelect"></photo-map>
261
+ </v-card-text>
262
+ <v-card-actions>
263
+ <v-btn size="large" @click="onCloseGps">
264
+ <v-icon icon="$back"></v-icon>
265
+ </v-btn>
266
+ <v-btn size="large" @click="showLocation = true">
267
+ <v-icon icon="$gps"></v-icon>
268
+ </v-btn>
269
+ </v-card-actions>
270
+ </v-card>
271
+ </v-dialog>
272
+ <v-dialog v-model="showLocation" width="30%">
273
+ <v-card>
274
+ <v-card-title>Select Location</v-card-title>
275
+ <v-card-text>
276
+ <v-text-field v-model="location" hide-details >
277
+ </v-text-field>
278
+ </v-card-text>
279
+ <v-card-actions>
280
+ <v-btn size="large" @click="onGoTo"><v-icon icon="$back"></v-icon>
281
+ </v-btn>
282
+ </v-card-actions>
283
+ </v-card>
284
+ </v-dialog>
285
+
205
286
  </template>
206
287
 
207
288
  <style scoped>