- Added Google Maps LocationPicker with autocomplete - Added location, locationName, latitude, longitude to Activity model - Extended Activity model with gender, minAge, maxAge, price fields - Updated activity creation form with custom styled inputs - Added map view on activity detail page - Added 'Open in Maps' button with deep linking - Custom styled autocomplete dropdown - Updated USER_STORIES.md with completed tasks
4.3 KiB
4.3 KiB
Google Maps API - Nastavenie
Aplikácia používa Google Maps API pre výber lokácie aktivít. Tento návod vám ukáže, ako získať API kľúč.
Postup získania API kľúča
1. Vytvorenie projektu v Google Cloud Console
- Prejdite na Google Cloud Console
- Prihláste sa pomocou Google účtu
- Kliknite na dropdown v hornej časti stránky a vyberte "New Project"
- Zadajte názov projektu (napr. "SportBuddy") a kliknite "Create"
2. Aktivácia potrebných API
- V Google Cloud Console prejdite na APIs & Services > Library
- Vyhľadajte a aktivujte nasledujúce API:
- Maps JavaScript API - pre zobrazenie máp
- Maps Embed API - pre vložené mapy (iframe)
- Places API - pre autocomplete adries (legacy)
- Places API (New) - pre zobrazenie miesta na mape
- Geocoding API - pre získanie GPS súradníc
Pre každé API:
- Kliknite na názov API
- Kliknite na tlačidlo "Enable"
3. Vytvorenie API kľúča
- Prejdite na APIs & Services > Credentials
- Kliknite na + CREATE CREDENTIALS v hornej časti
- Vyberte API key
- API kľúč bude vytvorený - skopírujte ho
4. Obmedzenie API kľúča (Dôležité pre bezpečnosť!)
Po vytvorení kľúča je dôležité ho obmedziť:
- V zozname API kľúčov kliknite na ikonu tužky (Edit) vedľa vášho kľúča
- V sekcii Application restrictions:
- PRE DEVELOPMENT: Vyberte "None" (žiadne obmedzenia)
- PRE PRODUCTION: Vyberte "HTTP referrers" a pridajte vašu doménu
- Poznámka: Maps Embed API má problémy s HTTP referrers v development móde
- V sekcii API restrictions:
- Vyberte "Restrict key"
- Zaškrtnite:
- Maps JavaScript API
- Maps Embed API
- Places API
- Places API (New)
- Geocoding API
- Kliknite na Save
DÔLEŽITÉ:
- Po uložení zmien môže trvať až 5 minút, kým sa zmeny prejavia
- Pre development odporúčame nastaviť "Application restrictions" na "None"
- Pre production použite HTTP referrers s vašou doménou
5. Pridanie API kľúča do projektu
- V koreňovom priečinku projektu vytvorte súbor
.env(ak neexistuje) - Skopírujte obsah zo súboru
.env.example - Do premennej
NEXT_PUBLIC_GOOGLE_MAPS_API_KEYvložte váš API kľúč:
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY="váš-api-kľúč-tu"
6. Reštart aplikácie
Po pridaní API kľúča reštartujte Docker kontajnery:
docker-compose restart frontend
Ceny a limity
Google Maps API ponúka $200 mesačného kreditu zadarmo, což pokrýva:
- Cca 28,000 načítaní máp mesačne
- Cca 100,000 autocomplete requestov mesačne
Pre väčšinu aplikácií v development a malých produkčných použití je to dostačujúce.
Riešenie problémov
"Google Maps Platform rejected your request" alebo HTTP 403
Najčastejší problém s Maps Embed API v development móde!
Rýchle riešenie:
- Prejdite na Google Cloud Console > APIs & Services > Credentials
- Kliknite na Edit vedľa vášho API kľúča
- V sekcii Application restrictions zvoľte "None"
- Kliknite Save
- Počkajte 2-5 minút
- Vyčistite cache prehliadača (Ctrl+Shift+Delete)
- Obnovte stránku (F5)
Poznámka: Pre production nasadenie použite HTTP referrers s vašou doménou (napr. https://vasadomena.sk/*)
"Google Maps API kľúč nie je nastavený"
- Skontrolujte, že ste vytvorili
.envsúbor - Overte, že premenná je správne pomenovaná:
NEXT_PUBLIC_GOOGLE_MAPS_API_KEY - Reštartujte Docker kontajner
"This page can't load Google Maps correctly"
- Skontrolujte, že ste aktivovali všetky potrebné API (Maps JavaScript, Maps Embed, Places, Places (New), Geocoding)
- Skúste odstrániť Application restrictions (nastaviť na "None")
Autocomplete nefunguje
- Uistite sa, že je aktivované Places API
- Skontrolujte obmedzenia API kľúča
Alternatívne riešenia (bez Google Maps)
Ak nechcete používať Google Maps API, aplikácia funguje aj s manuálnym zadávaním adresy:
- Používateľ môže zadať adresu textom
- GPS súradnice nebudú dostupné, ale aplikácia bude fungovať
Pre vypnutie Google Maps integrácie jednoducho nenastávajte NEXT_PUBLIC_GOOGLE_MAPS_API_KEY premennú.