Projekt célja
A mjgeo egy PHP + AJAX + JS alapú, EXIF/GPS-t használó segédprojekt,
amely a szerveren lévő képeket automatikusan 1 km-es körzetek szerint
csoportosítja. Az azonos helyen készült képek azonos „logikai mappába” kerülnek,
amelyet az output.json ír le.
Működés röviden
- EXIF olvasás: a
gallery.phpbeolvassa azimages/könyvtár képeit. - GPS konverzió: a GPS koordinátákat decimális fokra alakítjuk.
- Klaszterezés: Haversine-távolság alapján 1 km-es sugarú klaszterekbe rendezzük a képeket.
- Kimenet: az eredmény az
output.jsonfájlban és JSON API válaszként is elérhető. - Fizikai rendezés: az
organize.phpa képeket tényleges mappákba helyezi. - Diagnosztika: a
debug.phpáttekintést ad a projekt állapotáról. - ZIP készítés: a
create_zip.phpopcionálisan ZIP-et generál a rendezett struktúrából.
Gyors vezérlők
Tipp: a Helynevek megjelenítése bekapcsolásakor a klaszterek emberi olvasható helynévvel frissülnek (ha elérhető a geokódoló szolgáltatás).
Használat
1. Másold a képeket az images/ könyvtárba.
2. Nyisd meg a app.html oldalt a böngészőben.
3. A felület AJAX hívással meghívja a gallery.php-t, amely legenerálja az output.json-t
és megjeleníti a klasztereket.
4. A organize.php segítségével a képek fizikai mappákba rendezhetők.
5. A debug.php részletes diagnosztikát ad.
6. A create_zip.php ZIP-et készít a rendezett képekből.
Fájlok
gallery.php– EXIF/GPS feldolgozás, klaszterezés, JSON kimenet.output.json– generált csoportosítás (fájl → logikai mappa).organize.php– fizikai mappák létrehozása és képek áthelyezése.debug.php– projektállapot és diagnosztika.create_zip.php– ZIP fájl generálása a rendezett képekből.app.html+js/app.js– kliensoldali megjelenítés és vezérlés.js/geocode.js– reverse geocoding modul (külön fájl, cache).css/style.css– WCAG AA kontraszt, dark/light mód, témaváltó.
Közösségi linkek
Fejlesztői és fotós közösségek, ahol a projekt megosztható:
Támogatás
Ha szeretnéd támogatni a projektet, Bitcoin címen megteheted:
bc1qmq70727468zar0gw7jx8k9c9222ewktalzhum0
Másolható poszt
Az alábbi szöveg egyetlen kattintással kijelölhető és másolható: