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;
}

}


5 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?

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>