Postcodes van alle gemeentes van België met GPS coördinaten

LAATSTE UPDATE MAART 07, 2009

Voor een project, waarin ik de afstand moest weten tussen Belgische steden, had ik alle postcodes en plaatsnamen met GPS Coordinaten (breedte en lengte graad) nodig. Alle steden tesamen komt neer op zo’n 2000+ locaties elk met zijn unieke breedte en lengtegraad combinatie. Deze database van gemeentes en steden is handig indien je je gebruikers de mogelijkheid wil geven alles (autodealers, postkantoren, …) in een straal van X kilometer rondom hun gemeente of stad weer te geven.

Je kan deze database GRATIS downloaden. Moest je echter nog wat “spare-cash” hebben, mag je altijd wat geld naar paypal account thomas@rdlt.com sturen :D

Gratis download

Klik hier om de (My)SQL versie te downloaden (updated: 2009-03-06)

Support

Support zal alleen gegeven worden aan donors. Doneer met paypal! Mijn paypal adres: thomas@rdlt.com

Data

(My)SQL Database layout

tabel: province (bevat alle provincies)

ID
Name: Naam van de provincie

tabel: city (bevat alle steden, gemeentes & dorpen)

ID
Alpha: URL-veilige naam van de stad
longitude: Lengtegraad
latitude: Breedtegraad
code: postcode
name: naam van de stad
province: Id van de provincie

Afstanden berekenen

Om de afstanden te berekenen van stad A tot stad B kan je de volgende PHP code gebruiken

/*
*
* Geeft de afstand van A tot B adhv breedte- & lengtegraad
*
* @param	float		$lat1		Breedtegraad van A
* @param	float		$lat2		Breedtegraad van B
* @param	float		$lon1		Lengtegraad van A
* @param	float		$lon2		Lengtegraad van B
* @param	string	$unit		Afstand in kilometer (K) of mijlen (M)
*
*/
function distance($lat1, $lon1, $lat2, $lon2, $unit)
{

$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) +  cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);

if ($unit == "K")
{
return ($miles * 1.609344);
}
else
{
return $miles;
}

}



23 Responses (Add Your Comment)

  1. er is een probleem met latitude in de (my)sql code:
    `latitude` decimal(11,10) default NULL,

    De 11 moet 12 zijn aangezien latitude uit 12 digits bestaat
    `latitude` decimal(12,10) default NULL,

    verder een fantastische database, mijn dank hiervoor

    groeten

  2. een andere opmerking:
    INSERT INTO `province` (`id`, `name`) VALUES(7, ‘Li?’);
    dit moet natuurlijk liège zijn:
    INSERT INTO `province` (`id`, `name`) VALUES(7, ‘Liège’);

    groeten

  3. Had iemand de coordinaten al uitgeprobeerd op een kaart??

    http://www.postcode-database.nl/

    Probeer voor de grap maar eens uit, hoop dat je kan zwemmen =P.

    “.” staat verkeerd, moet 1 decimaal naar voren.

    greetz!

  4. heb een pagina gemaakt met alle steden van belgie en je kan de andere steden binnen een cirkel van 3 tot 30 km oproepen
    http://www.conexxion.be/steden/getDistance.php
    groeten
    fréderic

  5. ziet er goed uit, fréderic! gebruik je PHP of MySQL om dit te berekenen?

  6. Hmmm, Hoe kan ik hier de gemeenten uit halen? De city tabel bevat een name en province kolom, maar geeft niet aan of de waarde in de name kolom een stad, gemeente of dorp is. Mis ik iets?

  7. Ron,

    In de kolom city staan ook de gemeenten in. “name” staat voor de naam van de gemeente.
    De data stelt steden, gemeenten en dorpen op hetzelfde niveau en er is momenteel geen veld om te bepalen of dit een stad, gemeente of dorp is.
    Ik zal allesinds eens kijken of ik deze informatie nog kan toevoegen.

  8. De afstand berekenen tussen 2 gemeenten lukt wel met het php-script.

    Wat echter veel interessanter is: een plaatsnaam en een afstand (straal) opgeven en vervolgens een lijst genereren met omliggende gemeenten.
    Heeft iemand hiervoor reeds een functie geschreven?

  9. Voor zover ik er van op de hoogte ben is het mogelijk om een deze lijst van gemeenten te generenen via mysql als met php?
    Klopt dit? en is het juist dat mysql efficiënter is?

  10. Deze content is fantastisch, mag ik vragen hoe je deze verzameld hebt? Ik was hier al een tijdje naar op zoek…

  11. heel erg bedankt hiervoor, had enkel wel enkel de postcodes en gemeenten nodig maar toch! ;)

  12. @Daboe_ Als ik dat zou zeggen, kom je hier nooit meer terug ;)

    @Daan You’re welcome

  13. Goed gedaan, handige lijst.

    Het zou natuurlijk ook niet slecht zijn de posities in UTM31 te hebben, een metrisch grid is mi. makkelijker om te plotten en mee te werken dan Lat/Lons

  14. Als eens aan gedacht om deze te (laten) importeren in Freebase.com? Kwestie dat we ze dan via een API kunnen aanspreken en dat iedereen ze kan updaten. Gewoon een ideetje.

  15. Dat dit leuk is, kan ik niet tegenspreken. Maar wat is het nut in België waar bijvoorbeeld de postcode 1000 een zo bizarre vorm aanneemt… Je hebt geen coördinaten maar vormen (meerdere coördinaten) nodig om gemeenten/steden te definiëren, niet?

  16. Wie kan mij , tegen vergoeding , helpen met het opzetten van een grafische weergave van meerdere postcodeadressen uit een bestand in maps.google.nl bijvoorbeeld…

    Graag reactie op jan_visser@hotmail.com

  17. Super handig, bedankt om te delen!!

  18. Misschien toch even meedelen dat het record ‘Antwerpen’ (tabel cities, id 1) bij province een 0 heeft. Bijgevolg mislukken eventuele JOINS. De juiste province moet 1 zijn.

    Verder is het een zeer mooie oplijsting.

  19. Je hebt deze Database toevallig niet in een CSV file?

Trackbacks:

Leave a Reply

Formatting: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Archives

Twitter!