So erhalten Sie die Orts-ID der Stadt aus dem Breiten- / Längengrad mit der Facebook-API

8

Ich muss den Facebook-Platz für die Stadt für viele Breiten- und Längenpunkte finden. Die tatsächlichen Punkte beziehen sich auf persönliche Adressen, daher gibt es keine genauen Orts-IDs wie im Falle eines Geschäfts.

Zum Testen suchte ich nach der Stadt Red Feather Lakes, CO

  • Die Graph-Suchfunktion gibt viele Orte zurück, gibt aber keine Städte zurück Beispiel

  • Raw FQL lässt Sie nicht nach lat / long suchen und hat sowieso kein Konzept von "in der Nähe". Beispiel

  • Eine FQL-Abfrage nach ID zeigt, dass es mindestens ein Feld "Subtext anzeigen" gibt, das angibt, dass das Objekt eine Stadt ist. Beispiel

Danke für jede Hilfe. Ich habe über 80 Jahre alt und geotagged Fotos von meinem Vater, die er gerne auf seiner Timeline sehen würde!

BEARBEITEN

Städte befinden sich nicht in der Tabelle place , sondern nur in der Tabelle page . Es gibt eine undokumentierte Funktion distance() FQL, die jedoch nur in der Tabelle place funktioniert. (Über diese SO-Antwort .)

Das funktioniert:

%Vor%

Aber das gibt einen Fehler "Abstand ist nicht gültig auf der Tabellenseite":

%Vor%     
Stan James 03.02.2012, 03:27
quelle

2 Antworten

4

Es ist ein glorreicher Hack, aber dieser Code funktioniert. Der Trick besteht darin, zwei Abfragen zu machen. Zuerst suchen wir nach Orten in der Nähe unseres Punktes. Dies bringt viele Geschäfte zurück. Wir nehmen dann die Stadt von einem dieser Orte und verwenden diese, um in der Tabelle page für die Seite dieser Stadt zu suchen. Es scheint eine standardisierte Namenskonvention für Städte zu geben, aber anders für US-amerikanische und nicht-amerikanische Städte.

Einige kleine Städte haben verschiedene Schreibweisen in der Tabelle place , sodass der Code die zurückgegebenen Orte durchläuft, bis eine Übereinstimmung in der Tabelle page gefunden wird.

%Vor%     
Stan James 03.02.2012 16:42
quelle
2

Ich fand, dass diese Lösung für mich funktionierte, wenn ich nach einer Seite für die nächstgelegene Stadt mit dem angegebenen Breiten- / Längengrad suche. Aus irgendeinem Grund gab LIMIT 1 nicht die nächstgelegene Stadt zurück, so dass ich das Limit erhöhte und dann das erste Ergebnis erzielte.

%Vor%     
Dave Grenier 17.01.2013 16:54
quelle