Twitterと地図座標

Twitterでは、幾つかの方法で呟きに地図座標を追加することができる
・Locationを引っ張ってくる
・緯度経度を直接埋め込む
Twitter Placeを使う

いずれかの方法で追加された地図座標を使って、特定地点周辺のツブヤキなどを取得する

取得の方法について

GET search | Twitter Developersを使用する

地図座標から検索する

RESTに与えるQueryとして以下のように追加する

geocode=緯度,経度,中心からの距離
geocode=37.781157,-122.398720,1km

Placeから検索する

キーワードの値qに以下を追加するとして以下のように追加する

place:PlaceのID
q=place:247f43d441defc03

検索対象となるそれぞれのフィールドについて

Locationを引っ張ってくる

Twitterのプロフィール画面から設定できる「住所」
おそらく、内部的に地図座標に変換して周辺検索に利用していると思われる

そのため、実際には「呟きが行われた場所」ではなく「ユーザが登録した住所」なので注意

検索結果に含まれるものとしては、一番数が多い。

ただし、一部のクライアントでは緯度経度をここに埋め込もうとするので留意

緯度経度を直接埋め込む

おそらく呟き時のデータとして直接地図座標を埋めこまれたもの
数は少ないし、クライアントに依存するが、一応「呟きが行われた場所」を指すことができる

このフィールドだけを対象として呟きを検索することはできない

georss?

よく分からないままに呟き結果に含まれている。
どうやらRSSに地図座標を追加する規格のようだけど、何を参考に含まれているのか不明

Twitter Placeを使う

Twitterが内部的にもっている地位情報データベースを使用したもの
以下のようなAPI経由で取得することができる
GET geo/reverse_geocode | Twitter Developers
GET geo/nearby_places | Twitter Developers

ただし、日本では市区町村レベルのデータのみが対象なので、「呟きが行われた地区」レベルの取得となる
また、Twitter Placeの機能が有効な場合のみ付与されているので注意
※ アメリカでは施設名などまで含まれている様子

Twitter ヘルプセンター | 位置情報追加機能について

福岡市中央区周辺から引っ張ってきたTwitter Placeの例

Place ID Place Name Place Address
f62cf04248a8314b Fukuoka City Chuo Ward Fukuoka City Chuo Ward, Fukuoka
01784c311a5312c7 Kasuya Town Kasuya Town, Fukuoka
83e30e314d0e5320 Fukuoka City Hakata Ward Fukuoka City Hakata Ward, Fukuoka
aa7c3ccdbb497079 Kasuga City Kasuga City, Fukuoka
0feb8e41f2b83801 Fukuoka City Jonan Ward Fukuoka City Jonan Ward, Fukuoka
b625c675c61c863b Sue Town Sue Town, Fukuoka
4bda4536528abe8f Dazaifu City Dazaifu City, Fukuoka
4c6f6aa0ae926c41 Onojo City Onojo City, Fukuoka
6772c147e8066ea1 Itoshima City Itoshima City, Fukuoka
b30e1d5534e70f70 Hisayama Town Hisayama Town, Fukuoka
8d59909b600e0352 Iizuka City Iizuka City, Fukuoka

まとめ

Twitterで位置情報を有効にして投稿すると以下の2つのデータが追加される
・現在地からTwitter Placeを判定して、Twitter Placeの情報を返す
・現在地地震をgeorssの形で返す

地図座標を指定して周辺の呟きを取ってくるには

前述のGET searchに中心となる地図座標をセットして呟きを取得するが、どのデータを信じるか?

・Locationしか含まれていないものについては、除外するのが望ましい?
・地図座標かgeorssが含まれているものは採用
Twitter Placeが含まれているものについては、用途によって調整