2012-04-02 4 views
0

Ich habe ein kleines Nebenprojekt, wo ich Radius Suche erlauben. Sie geben eine Stadt, einen Bundesstaat (oder eine Postleitzahl) und einen Radius ein und geben die Ergebnisse basierend auf den zurückgegebenen Postleitzahlen zurück. Dies beruht derzeit auf PHP und MySQL. Ich möchte diesen Prozess clientseitig verschieben.Holen Sie sich Postleitzahlen in einem Umkreis von einer Postleitzahl mit YQL

Ich komme kurz mit der Suche nach einer Lösung mit YQL, also frage ich mich, ob jemand andere eine Idee oder einen Anstoss in die richtige Richtung hat.

Prost.

+0

Dies ist vielleicht nicht wichtig, aber eine YQL-Implementierung konnte kaum als "Client-Seite" bezeichnet werden. – Pointy

+0

Ich möchte diesen Prozess vom Server auf den Client verschieben und dabei alle APIs verwenden, die mir zur Verfügung stehen. Ich bin mir nicht sicher, wie ich das sagen sollte, aber ich fühlte, dass die Klientel Seite angemessen war. Wenn es eine passendere Terminologie gibt, lass es mich wissen. Vielen Dank. – S16

+0

Die mysql und php müssen immer noch mysql und php sein, alles, was YQL für Sie tun wird, erlaubt Ihnen domänenübergreifende Anfragen an Server zu stellen, die jsonp nicht zurückgeben oder CORS nicht unterstützen. –

Antwort

1

Dies ist nicht YQL, aber es kann helfen. Persönlich würde ich nach einer Datenbank von Postleitzahlen mit einer Breite/Länge suchen. Wenn Sie/die Benutzer eine Postleitzahl und einen Radius angeben, können Sie den Breitengrad ihres Eintrags abfragen und dann nach anderen Postleitzahlen in der Nähe suchen.

Dies ist eine Umkreissuche, die die Krümmung der Erde für die Berechnungen berücksichtigt:

https://developers.google.com/maps/articles/phpsqlsearch

Der spaßige Teil:

SELECT id, (3959 * acos(cos(radians(37)) * cos(radians(lat)) * cos(radians(lng) - radians(-122)) + sin(radians(37)) * sin(radians(lat)))) AS distance 
FROM markers HAVING distance < 25 
ORDER BY distance LIMIT 0 , 20; 

dass Failing, Sie immer für eine aussehen könnte API (vielleicht Google Navigation/Richtungen) und die gesamte (Fahr-) Entfernung zwischen 2 Postleitzahlen abrufen.

Hoffe, dass hilft