Alvast mijn welgemeende excuses als de vraag hier niet helemaal thuis hoort, of ik te weinig moeite heb gedaan. Ik doe mijn best in elk geval:
Voor een klant ben ik bezig een store locater te maken. Klant heeft een lijst aangeleverd met 747 adressen, zonder longitude en latitude. Opzich prima, want ik dacht, die kan ik met Google Maps API wel geocoden, en mijn idee is dan om die resultaten te cachen. Maar ik loop nogal snel tegen het limiet gebeuren aan met Google Maps API, vooral omdat ik nu nog in de test fase zit, en ik mijzelf nou niet echt een PHP held kan noemen. Toen ik de Google Maps API aan de kant geschoven heb, ben ik gaan kijken naar de propp6 database. Door middel van dit stukje code:
Kan ik vrij snel een lijst van 200 adressen geocoden, maar 737 vind propp6 niet leuk. Ik dacht, misschien als ik de while loop elke 100 adressen even op pauze zet een sleep van 10:
maar dat werkt niet. Blijft een timeout geven. Kan zijn dat ik die sleep niet goed doe, is nieuw voor mij.
Maar het kan ook zijn dat mijn aanpak compleet verkeerd is. De bedoeling is dat de klant elke maand een CSV bestand met die adressen zonder longitude en latitude upload. Ik moet nog een script schrijven die dat CSV bestand automatisch gaat importeren, en misschien moet ik in die stap al die longitude en latitude erbij opzoeken en een JSON file wegschrijven die ik gebruik voor de 'live' website, maar feit dat ik bovenstaand probleem houd. Iemand die mij een stap in de goeie richting kan geven? Misschien met ervaring met het propp6 gebeuren?
Voor een klant ben ik bezig een store locater te maken. Klant heeft een lijst aangeleverd met 747 adressen, zonder longitude en latitude. Opzich prima, want ik dacht, die kan ik met Google Maps API wel geocoden, en mijn idee is dan om die resultaten te cachen. Maar ik loop nogal snel tegen het limiet gebeuren aan met Google Maps API, vooral omdat ik nu nog in de test fase zit, en ik mijzelf nou niet echt een PHP held kan noemen. Toen ik de Google Maps API aan de kant geschoven heb, ben ik gaan kijken naar de propp6 database. Door middel van dit stukje code:
code:
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
| // Haal longitude + latitude op
$nl_sixpp = $postcode;
// Optional
//$streetnumber = $huisnr;
// Optionally, set a timeout (in ms)
$timeout = 50000;
$url = "http://api.pro6pp.nl/v1/autocomplete?auth_key=" . $auth_key .
"&nl_sixpp=" . urlencode($nl_sixpp) .
"&streetnumber=" . $streetnumber;
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, $timeout);
$result = curl_exec($ch);
curl_close($ch);
$nonjson = json_decode($result, TRUE);
if ($nonjson):
// Show raw output
$lat = $nonjson['results'][0]['lat'];
$lng = $nonjson['results'][0]['lng'];
else:
// Timeout occured. Either the service is down or you should
// increase the timeout to at least 5000ms.
print("Pro6PP is unavailable at this time");
endif; |
Kan ik vrij snel een lijst van 200 adressen geocoden, maar 737 vind propp6 niet leuk. Ik dacht, misschien als ik de while loop elke 100 adressen even op pauze zet een sleep van 10:
code:
1
2
3
4
5
| if ($i == 100):
flush();
sleep(10);
$i = 0;
endif; |
maar dat werkt niet. Blijft een timeout geven. Kan zijn dat ik die sleep niet goed doe, is nieuw voor mij.
Maar het kan ook zijn dat mijn aanpak compleet verkeerd is. De bedoeling is dat de klant elke maand een CSV bestand met die adressen zonder longitude en latitude upload. Ik moet nog een script schrijven die dat CSV bestand automatisch gaat importeren, en misschien moet ik in die stap al die longitude en latitude erbij opzoeken en een JSON file wegschrijven die ik gebruik voor de 'live' website, maar feit dat ik bovenstaand probleem houd. Iemand die mij een stap in de goeie richting kan geven? Misschien met ervaring met het propp6 gebeuren?
Seizoenskaarthouder Feyenoord - Vak T