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

GPS-Speicherung in 2 Feldern #11

Closed
akrys opened this issue Jun 9, 2020 · 0 comments · Fixed by #15
Closed

GPS-Speicherung in 2 Feldern #11

akrys opened this issue Jun 9, 2020 · 0 comments · Fixed by #15
Milestone

Comments

@akrys
Copy link
Member

akrys commented Jun 9, 2020

In PR1 werden im Commit 2184ddd die Geo-Koordinaten ausgelesen und in einem Feld als komma-separierte Werte gespeichert.

Vorteil: Man kann die Koordinaten mit nur einer PHP-Variablen an eine JS-Geo-Funktion leiten.
Ein Beispiel aus ganz alten Code-Fragmenten:

var pos = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

// mit PHP:
var pos = new google.maps.LatLng(<?= $media->getValue('med_gps'));?>);

Nachteil:
Je nach Projekt kann es sein, dass man die Werte LAT und LONG separat braucht.

Das wäre z.B. der Fall, wenn man eine Distanz-Berechnung machen will. (z.B. für eine Umkreissuche)

Nehmen wir als Beispiel die Distanz zwischen

  • Foto-Location (hier als med_lat und med_long angelegt)
  • Frankfurt (50.1109221,8.6821267)
select `med_lat`,`med_long`,
( 6367.45 * acos( cos( radians(50.1109221) ) * cos( radians( `med_lat` ) ) * cos( radians( `med_long` ) - radians(8.6821267) ) + sin( radians(50.1109221) ) * sin( radians( `med_lat` ) ) ) ) AS distance
from rex_media

Hat man die Werte nur in einem Feld müsste man es aufteilen. explode gibt es in MySQL nicht, man müsste es selbst schreiben:
https://forums.mysql.com/read.php?10,383804,383897#msg-383897

Fazit:
Da das Addon mit Geo-Auslese-Funktion noch nicht veröffentlicht ist, würde ich die Werte trennen, solange man das noch gefahrlos machen kann. Alleine schon um es für künftige Anforderungen einfach zu halten.

Übrigens:
Der JS-Output von oben würde sich dadurch nur unwesentlich ändern:

//vorher
var pos = new google.maps.LatLng(<?= $media->getValue('med_gps'));?>);

//nachher
var pos = new google.maps.LatLng(<?= $media->getValue('med_lat'));?>,<?= $media->getValue('med_long'));?>);
@akrys akrys added this to the v 1.1 milestone Jun 9, 2020
akrys added a commit to akrys/mediapool_exif that referenced this issue Jun 10, 2020
@akrys akrys closed this as completed in #15 Jun 10, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant