Ik ben bezig om een buddypress/wordpress plugin te maken. In de "metadata" tabel van de buddypress groepen sla ik de latidude longtitude op. Mijn doel is om elke buddypress groep die wordt aangemaakt een locatie mee te geven en elke groep op een kaart te tonen. Dit werkt.
Volgende stap: Zoeken op dischtbijzijnde groep. Stel; ik heb de groep is Amsterdam, en ik zoek op Haarlem. Voor Haarlem is geen groep aangemaakt, en de groep Amsterdam is het meest dicht bij Haarlem. Hij zou dus Amsterdam moeten geven.
De lat/lon gegevens van de ingegeven zoekopdracht worden opgevraagd bij Google Maps. Daarna wil in de (standaard) Buddypress tabel zoeken naar de dichstbijzijnde locatie.
De tabel zit er als volgt uit:
id | group_id | meta_key | meta_data
Dit wordt gevuld als:
1 | 1 | stad | Amsterdam
2 | 1 | last_activity | 12-12-2010
3 | 1 | lat | 52.1565886
4 | 1 | lon | 5.1586
Geen apart veld voor lat / lon dus.Per groep wordt deze informatie opgeslagen. In dit geval dus groep id 1.
Nou zijn er "standaard" MySQL queries, die je overal op internet kan vinden. Echter, deze gaan er vanuit dat je een aparte kolom voor latitude en longitude hebt. Ik dacht dit op te lossen om twee subselects te doen. Zie hieronder. Dit werkt echter niet.
Kunnen jullie mij op weg helpen? Of is er geen andere oplossing dan 'n nieuwe tabel aanmaken met de lat/lon gegevens?
Edit: Les 1: topictitel controleren voor plaatsen...Excuses.
Volgende stap: Zoeken op dischtbijzijnde groep. Stel; ik heb de groep is Amsterdam, en ik zoek op Haarlem. Voor Haarlem is geen groep aangemaakt, en de groep Amsterdam is het meest dicht bij Haarlem. Hij zou dus Amsterdam moeten geven.
De lat/lon gegevens van de ingegeven zoekopdracht worden opgevraagd bij Google Maps. Daarna wil in de (standaard) Buddypress tabel zoeken naar de dichstbijzijnde locatie.
De tabel zit er als volgt uit:
id | group_id | meta_key | meta_data
Dit wordt gevuld als:
1 | 1 | stad | Amsterdam
2 | 1 | last_activity | 12-12-2010
3 | 1 | lat | 52.1565886
4 | 1 | lon | 5.1586
Geen apart veld voor lat / lon dus.Per groep wordt deze informatie opgeslagen. In dit geval dus groep id 1.
Nou zijn er "standaard" MySQL queries, die je overal op internet kan vinden. Echter, deze gaan er vanuit dat je een aparte kolom voor latitude en longitude hebt. Ik dacht dit op te lossen om twee subselects te doen. Zie hieronder. Dit werkt echter niet.
code:
1
2
3
4
5
| SELECT id, (select meta_value from kw_bp_groups_groupmeta where meta_key = 'lat') as lat, (select meta_value from kw_bp_groups_groupmeta where meta_key = 'lon') as lng, ( 3959 * acos( cos( radians(52.229033) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(5.471191) ) + sin( radians(52.229033) ) * sin( radians( lat ) ) ) ) AS distance FROM kw_bp_groups_groupmeta HAVING distance < 30 ORDER BY distance LIMIT 0 , 20 |
Kunnen jullie mij op weg helpen? Of is er geen andere oplossing dan 'n nieuwe tabel aanmaken met de lat/lon gegevens?
Edit: Les 1: topictitel controleren voor plaatsen...Excuses.