Svenska dagbladet avänder GeoSök API

5 januari, 2012

Det är lite kul att kunna berätta att SVD använder vårt API i en ny webb-applikation om Inflyttade Stockholmare.

I appen får användaren berätta om när denne flyttade till Stockholm och hur han/hon känner eller identifierar sig. I formuläret finns också ett fält för postnummer. Postnumret används sedan för att geokoda inlägget med hjälp av vårt API.

Grymt kul naturligtvis, och det visar på vilka kreativa möjligheter vårt API ger.

API: hämta avståndet mellan två postnummer

16 november, 2011

Vi har nu uppdaterat API:et så att man kan hämta geografiskt avstånd (i kilometer) mellan två postnummer via ett http-anrop. Svaret returneras i JSON-format.

Ett anrop kan se ut så här:

http://www.geosok.se/api/api.php?key=[APIKEY]&zip=41130&zip2=10510

och svaret kan då se ut så här:

{"Location":{"distance":397.950299465,"zip":41130,"zip2":10510}}

Denna sträng kan sedan enkelt avkodas med php json_decode.

Om ena eller båda postnummerna inte existerar så returneras strängen ”Zip not found”. Det är också viktigt att postnummerna har rätt format (5 siffror utan mellanslag eller andra tecken).

Hämta postort automatiskt till dina formulär

11 november, 2011

Det är ett faktum att internetanvändare är lata av naturen. De vill anstränga sig så lite som möjligt och speciellt avskyr de att fylla i formulär.

Därför är det bra om man underlättar för dem, och ett sätt är att automatiskt hämta postort när de fyllt i sitt postnummer. Det är ju egentligen redundant information, men de flesta system och användare förväntar sig ändå postorten i en adress.

Via GeoSöks API kan du via ett ajax-anrop hämta postort och automatiskt fylla i textfältet för postort, t.ex. med jQuery och ett skript som hämtar informationen från GeoSök.

Följande enkla exempel anropas med postnumret i URL:en och hämtar via API:et den postort som numret tillhör och returnerar resultatet i JSON-format. Detta skript anropas lämpligen med jQuery det ögonblick användaren fyllt i sitt postnummer.

$postnummer = intval($_GET[zip]);
$fileData = @file_get_contents('http://www.geosok.se/api/api.php?key=[APIKEY]&zip='.$postnummer);
$geod = json_decode($fileData,TRUE);
$geoData = $geod[Location][0];
if($geoData[latitude]<1) {
$fileData = @file_get_contents('http://www.geosok.se/api/api.php?key=[APIKEY]&zip='.$postnummer);
$geod = json_decode($fileData,TRUE);
$geoData = $geod[Location][0];
}
$points = array();
array_push($points, array('city' => $geoData[city]));
echo json_encode(array("Location" => $points));