2010-05-14 3 views
7

Was ist der effektivste und genaueste Weg zum Geocodieren einer UK-Postleitzahl? Die Verwendung des eingebauten Geocode-Objekts führt zu stark unscharfen Ergebnissen (viele Postleitzahlen geben nur einen allgemeinen Bereich zurück).Der beste Weg, Postleitzahlen in Großbritannien mit Google Maps API zu geocodieren?

Gibt es kostenlose Postleitzahlen-Geocodierungsdienste, die ich über JavaScript anschließen kann?

+0

*** Ich arbeite für Grenzen IO UK ****, wir haben einen Rest Service zu tun, was Sie verlangen. und gibt GEO JSON zurück: https://market.mashape.com/vanitysoft/uk-boundaries-io –

Antwort

6

Bearbeiten: Um klarer zu sein, verwendet dies die lokale Suche in Google Search API, nicht die Google Maps API, um die Geocodierung zu tun, die viel genauer ist.

Der beste Weg ist, Google Search API zu verwenden.

Wenn Sie einen API-Schlüssel bekommen und alles Setup erhalten: http://code.google.com/apis/ajaxsearch/

var localSearch; 
var map; 
var icon; 
var addressMarkerOptions; 
google.load("search", "1"); 
google.load("maps", "2"); 
google.setOnLoadCallback(initialize); 

function initialize() 
{ 
    localSearch = new GlocalSearch(); 
    icon = new GIcon(G_DEFAULT_ICON); 
    addressMarkerOptions = { icon:icon , draggable: false}; 
    map = new GMap2(document.getElementById("map")); 
    map.addControl(new GLargeMapControl()); 
    map.addControl(new GMapTypeControl()); 
    plotAddress("OX4 1FJ"); 
} 

/** 
* This takes either a postcode or an address string 
* 
*/ 
function plotAddress(address) 
{ 
    localSearch.setSearchCompleteCallback(null, 
    function() { 

     if (localSearch.results[0]) 
     {  
     var resultLat = localSearch.results[0].lat; 
     var resultLng = localSearch.results[0].lng; 
     var point = new GLatLng(resultLat,resultLng); 
     var marker = new GMarker(point, addressMarkerOptions); 
     map.addOverlay(marker); 
     map.setCenter(point, 5, G_NORMAL_MAP); 
     } 
     else 
     { 
     alert('address not found'); 
     } 
    }); 

    localSearch.execute(address + ", UK"); 
} 
+0

Ich denke, das OP findet, dass die Verwendung der Google Maps API sehr unscharfe Ergebnisse für UK Postleitzahlen ergibt. Ich persönlich habe festgestellt, dass die API für eine Postleitzahl andere Ergebnisse liefert als die Ergebnisse, die auf der Google Maps-Website zu sehen sind. –

+0

Dies verwendet nicht die Google Maps API, um die Geokodierung durchzuführen. Es verwendet die lokale Suche API, die viel genauer ist. Ich werde das bearbeiten, um klar zu sein. – johnwards

+0

+1 brilliant, genau das, was ich nach arbeitete hervorragend danke! Gibt es Beschränkungen, wie viele Anfragen Sie an einem Tag stellen können? Ich hatte das schon vorher benutzt, konnte mich aber an nichts erinnern, aber ich erinnere mich daran, dass es eine Einschränkung gab. Wie auch immer, nochmals vielen Dank, super! – joshcomley

0

Ich glaube, Live-/Bing/Windows-Karten API für eine UK Postleitzahl als die Google Maps API eine viel genauere Platzierung gibt tut .

Alternativ gibt es Datenbanken mit Postleitzahlen-Daten aus Großbritannien, obwohl sie ziemlich teuer sind. Es gibt einige interessante Kommentare zu diesem Beitrag: http://jamiethompson.co.uk/web/2008/07/24/full-uk-postcode-database-for-free/

+0

Zusätzlich gibt es einen XML-, JSON-, JSONP-Webservice http://jamiethompson.co.uk/projects/2010/04/30/an-open-free-uk-postcode-geocoding-web-service/ Der JSONP-Geschmack ideal zum direkten Einstecken in eine JavaScript-App. – jthompson

+0

Ich habe gerade eine Antwort auf diese Antwort bekommen (4+ Jahre später). Ich nehme an, dass die Information nicht mehr stimmt. –

+0

Ja, die Website ist nicht mehr verfügbar. –

1

Ordnance Survey haben ihre Daten frei gemacht - http://www.ordnancesurvey.co.uk/oswebsite/opendata/ - Sie könnten Ihre eigenen Web-Service kochen ;-)

+0

Aber die Postleitzahlen sind das Eigentum von Royal Mail, nicht Ordnance Survey. Sagen Sie, dass Sie eine Postleitzahl mit OS-Daten irgendwie geocodieren können? Wenn ja, haben Sie einen Link oder ein Beispiel? – NickG

+0

@NickG Wenn Sie auf diese Seite gehen: https://www.ordnancesurvey.co.uk/opendatadownload/products.html können Sie das Download-Feld neben "Code-Point® Open" ankreuzen. Klicken Sie auf Weiter und sie fragen nach Ihrer E-Mail-Adresse und dem Namen des Unternehmens. Dann mailen Sie eine 20Mb. Zip mit 120 .csv mit Zeilen wie: 'SE1 0AA 10 531869 179427 E92000001 E19000003 E18000007 E09000028 E05000536'.Die '531869' und' 179427' sind Ost- und Nordteile, mit denen Sie scheinbar etwas Nützliches machen können: S oder einfach nur benutzen: http://www.uk-postcodes.com/api? – AJP

+0

Diese Website reagiert nicht. –