Scripts
Postcode/huisnummer naar adres/woonplaats
Dit script genereert straat en woonplaats vanuit postcode en huisnummer Vraag eerst een gratis registratiekey aan op https://www.postcodeapi.nu/ (gratis tot 200 calls/dag) vul deze key in op regel 30 van het script roep het script aan als http://www.xxxxxx.nl/postcode.php?postcode=5211je&nummer=1 Het script zal antwoorden met [{"city":"'s-Hertogenbosch","street":"Bastion Oranje","province":"Noord-Brabant","lat":51.6840973,"lon":5.3029373}] Nu moet ik nog een manier vinden om dit via AJAX automatisch in een formulier te verwerken
postcode.php
<?PHP
$postcode = $_GET['postcode'];
$nummer = $_GET['nummer'];
$postcode = str_replace(' ', '', $postcode);
$nummer = str_replace(' ', '', $nummer);
$postcode = strtoupper($postcode);
$OK = 0;
if( preg_match("/^[1-9]{1}[0-9]{3}[A-Z]{2}$/", $postcode)) {
$OK = 1;
} else {
$OK = 0;
}
if ($OK==1){
if( preg_match("/^[0-9]*$/", $nummer)) {
$OK = 1;
} else {
$OK = 0;
}
}
// Uncomment fot test
// echo "Postcode: ".$postcode ;
// echo "<br>";
// echo "Nummer: ".$nummer;
if ($OK==1) {
// De headers worden altijd meegestuurd als array
$headers = array();
$headers[] = 'X-Api-Key: <Hier eigen registratiekey invullen>';
// De URL naar de API call
$url = 'https://postcode-api.apiwise.nl/v2/addresses/?postcode='.$postcode.'&number='.$nummer;
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
// Indien de server geen TLS ondersteunt kun je met
// onderstaande optie een onveilige verbinding forceren.
// Meestal is dit probleem te herkennen aan een lege response.
// curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// De ruwe JSON response
$response = curl_exec($curl);
// Gebruik json_decode() om de response naar een PHP array te converteren
$data = json_decode($response);
// Uncomment fot test
/*
$addresses = $data->_embedded->addresses;
$address = $addresses[0];
$street = $address->street;
$city = $address->city->label;
Echo "<BR>Street: ";
ECHO $street;
Echo "<BR>City: ";
ECHO $city;
*/
$addressdata = $data->_embedded->addresses[0];
if ($addressdata)
{
$city = $addressdata->city->label;
$street = $addressdata->street;
$province = $addressdata->province->label;
$lat = $addressdata->geo->center->wgs84->coordinates[1];
$lon = $addressdata->geo->center->wgs84->coordinates[0];
$return_data[]= array("city"=>$city,"street"=>$street,"province"=>$province,"lat"=>$lat,"lon"=>$lon);
header('Content-type:application/json;charset=utf-8');
echo json_encode($return_data);
}
curl_close($curl);
} else {
ECHO "<BR>verkeerde parameters";
}
?>
Reacties
0