Sinds ik niet echt een categorie vind waar mijn vraag/probleem bijhoort zet ik het hier neer omdat ik denk dat het hier het dichtst tegen aanleunt. Nu ik ben met een project bezig. Ik ben namelijk een diepzeeduik-community aan het maken. De gebruiker kan duiken planen, verslagen maken, duiklocaties maken, enzovoort...
Om een duik te plannen heb ik uiteraard een duiklocatie nodig, maar voor deze duiklocatie heb ik ook een gemeente, land en eventueel latitude en longitude nodig.
Nu hier is mijn probleem: als de gebruiker een duiklocatie moet toevoegen moet hij ook kunnen zeggen waar deze duiklocatie zich bevindt uiteraard. Dit moet zo gebruikersvriendelijk kunnen gebeuren. Ook moet de gebruiker kunnen zien in welke gemeente/zone de duiklocatie zich bevind als hij/zij door de duiklocaties bladert.
Ik dacht eerst om met een database te werken met een tabel met alle gemeentes in van over heel de wereld maar om dit te krijgen is nogal moeilijk.
Als je de coördinaten weet, kan je met dit script het één en ander uitzoeken:
<?php
if(isset($_GET['coords'])) {
$url = "http://maps.googleapis.com/maps/api/geocode/xml?latlng=".$_GET['coords']."&sensor=true";
$xml = simplexml_load_file($url,NULL, LIBXML_NOCDATA);
if(isset($_GET['debug'])) {
echo "<pre>".print_r($xml)."</pre>";
}
if($xml->status == "ZERO_RESULTS") {
echo "Geen resultaten gevonden!";
} else {
echo "<ul>";
foreach ($xml->result->address_component as $item) {
$item = (array)$item;
if($item['type'][0] == "country") {
echo "<li>Landcode:".$item['long_name']."</li>";
echo "<li>Landcode:".$item['short_name']."</li>";
break;
}
}
echo "</ul>";
}
} else {
echo "Ik heb coordinaten nodig (zoals 51.8055,4.73534), anders sta ik uit mijn neus te eten.<br />Snap je het niet? Klik eens <a href='locationcheck.php?coords=51.8055,4.73534'>hier</a>.";
}
?>
Aanroepen met:
locationcheck.php?coords=51.8055,4.73534
Eventueel kan je er &debug=1 achter zetten voor een array met alle gegevens. Van boven naar beneden zie je de opeenvolgende gebieden waar jouw plaats bevindt (land, provincie, gemeente, plaats)
Oh ja, per IP kan je 2.000 requests per dag doen, als ik me niet vergis.
Als je de coördinaten weet, kan je met dit script het één en ander uitzoeken:
<?php
if(isset($_GET['coords'])) {
$url = "http://maps.googleapis.com/maps/api/geocode/xml?latlng=".$_GET['coords']."&sensor=true";
$xml = simplexml_load_file($url,NULL, LIBXML_NOCDATA);
if(isset($_GET['debug'])) {
echo "<pre>".print_r($xml)."</pre>";
}
if($xml->status == "ZERO_RESULTS") {
echo "Geen resultaten gevonden!";
} else {
echo "<ul>";
foreach ($xml->result->address_component as $item) {
$item = (array)$item;
if($item['type'][0] == "country") {
echo "<li>Landcode:".$item['long_name']."</li>";
echo "<li>Landcode:".$item['short_name']."</li>";
break;
}
}
echo "</ul>";
}
} else {
echo "Ik heb coordinaten nodig (zoals 51.8055,4.73534), anders sta ik uit mijn neus te eten.<br />Snap je het niet? Klik eens <a href='locationcheck.php?coords=51.8055,4.73534'>hier</a>.";
}
?>
Aanroepen met:
locationcheck.php?coords=51.8055,4.73534
Eventueel kan je er &debug=1 achter zetten voor een array met alle gegevens. Van boven naar beneden zie je de opeenvolgende gebieden waar jouw plaats bevindt (land, provincie, gemeente, plaats)
Oh ja, per IP kan je 2.000 requests per dag doen, als ik me niet vergis.