Hallo,
Ik kreeg de vraag om een geolocatie api van google aan te passen. Blijkbaar hebben ze sinds het begin van deze maand een nieuwe api versie en daardoor werkt de oude methode niet.
Dit is de code die ik heb;
Voorheen werd $request_url een comma gescheiden cvs bestand uitgelezen. Nu kun je enkel een XML of een JSON bestand als uitput krijgen. Vandaar ook nu nog de code van cvsSplit (welke nu niet meer toepasbar lijkt).
De debug toont voor mij de juiste informatie, ik weet echter niet hoe ik de juiste informatie uit het XML/JSON bestand krijg.
http://omega-thunder.nl/ss/geo.php op deze locatie draait het bovenstaande scriptje.
op http://maps.googleapis.co...hem+Nederland&sensor=true krijg ik een uitput file die dus ook in de 'debug readout' wordt weergegeven.
De gegevens die voorheen in de database geschreven werden moet ik hieruit dan ook weer hebben, dat betreffen uit de json de regel:
Iemand die mij kan vertellen hoe ik die gegevens 'op papier' krijg?
Ik kreeg de vraag om een geolocatie api van google aan te passen. Blijkbaar hebben ze sinds het begin van deze maand een nieuwe api versie en daardoor werkt de oude methode niet.
Dit is de code die ik heb;
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| <?php $base_url = "http://maps.googleapis.com/maps/api/geocode/json?address"; $postcode = '6836'; // Deze waarde hoeft niet worden aangepast in bestand $plaats = 'arnhem'; // Deze waarde hoeft niet worden aangepast in bestand echo '<br/><br/>------- Debug input ------- <br/>'; echo 'Postcode: ' . $postcode . '<br/>'; echo 'Plaats: ' . $plaats . '<br/>'; echo '------- Debug -------<br/><br/>'; $sensor = '&sensor=true'; // dit moet achter de baseurl, maar na de postcode+plaats $request_url = $base_url . "=" . urlencode($postcode . ' ' . $plaats . ' Nederland') . $sensor; //print $request_url; $xml = file_get_contents($request_url) or die("url not loading"); echo '<br/><br/>------- Debug url ------- <br/>'; echo 'request url: ' . $request_url . '<br/>'; echo 'xml: ' . $xml . '<br/>'; echo '------- Debug -------<br/><br/>'; $lat1 = 0; $lng1 = 0; $csvSplit = split(",", $xml); if(isset($csvSplit[0])) $status = $csvSplit[0]; if(isset($csvSplit[2])) $lat1 = $csvSplit[2]; if(isset($csvSplit[3])) $lng1 = $csvSplit[3]; echo '<br/><br/>------- Debug readout ------- <br/>'; echo 'status: ' . $status . '<br/>'; echo 'lat1: ' . $lat1 . '<br/>'; echo 'lng1: ' . $lng1 . '<br/>'; echo '------- Debug -------<br/><br/>'; ?> |
Voorheen werd $request_url een comma gescheiden cvs bestand uitgelezen. Nu kun je enkel een XML of een JSON bestand als uitput krijgen. Vandaar ook nu nog de code van cvsSplit (welke nu niet meer toepasbar lijkt).
De debug toont voor mij de juiste informatie, ik weet echter niet hoe ik de juiste informatie uit het XML/JSON bestand krijg.
http://omega-thunder.nl/ss/geo.php op deze locatie draait het bovenstaande scriptje.
op http://maps.googleapis.co...hem+Nederland&sensor=true krijg ik een uitput file die dus ook in de 'debug readout' wordt weergegeven.
De gegevens die voorheen in de database geschreven werden moet ik hieruit dan ook weer hebben, dat betreffen uit de json de regel:
code:
1
2
3
4
| "location" : {
"lat" : 51.9457601, <<< Deze ($lat1)
"lng" : 5.894137600000001 <<< Deze ($lng1)
"status" : "OK" <<< En deze ($status) |
Iemand die mij kan vertellen hoe ik die gegevens 'op papier' krijg?