つぶやき 投稿で使用されている場所を検索 geo search
2012年のTwitter APIの記事です。
参考資料として掲載しておきます。
目次 [閉じる]
Twitter API geo/search
API Resource
GET geo/search
概要
ステータス更新(つぶやき投稿)時に使用されている可能性のある位置情報を検索します。
「経度/緯度のペア」、または、「IPアドレス」、または、「名前」を指定すれば、
ステータス更新(つぶやき投稿)時に place_id(geocode) として使用されているであろう、すべての有効な位置情報一覧を取得できます。
概念的には、認証ユーザー(自分)が指定した場所から位置情報一覧を作成し、その場所が他のTwitterユーザーにより使用されている位置情報かどうか検証し、
ステータス更新(つぶやき投稿)時に、この場所のIDを使用することが出来ます。
これは、ステータス更新(つぶやき投稿)時に、パラメーター place_id として有効な場所を発見する場合に推奨される方法です。
生の地理情報を直接取得する geo/reverse_geocode とは異なり、認証ユーザー(自分)へ位置情報一覧からさらに有効な位置情報取得を再注文したようなアプローチを提供してくれます。
このアプローチは、他のユーザーが使用している有効な位置情報により、インタラクティブなマッチングを可能にします。
原文
Resource URL(リソースURL)
http://api.twitter.com/1/geo/search.json
Resource Information(リソース情報)
Rate Limited(制限) | Yes(あり) |
Requires Authentication(認証) | No(なし) |
Response Formats(フォーマット) | json |
HTTP Methods(HTTPメソッド) | GET |
Parameters(パラメーター)
次のパラメーター lat,long,ip,query これらの少なくとも一つは指定する必要があります。
lat ※オプション | サンプル値:37.7821120598956 | 検索する地点の緯度を指定します。有効範囲は北緯が+90.0まで、南緯は-90.0まで、小数点以下8桁まで指定可能です。 有効範囲外の値を指定した場合やlongパラメータが指定されていない場合は無効になります。 |
long ※オプション | サンプル値:-122.400612831116 | 検索する地点の軽度を指定します。有効範囲は東経が+180.0まで、西経は-180.0まで、小数点以下8桁まで指定可能です。 有効範囲外の値を指定した場合やlatパラメータが指定されていない場合は無効になります。 |
query ※オプション | サンプル値:Twitter%20HQ | 場所を検索するための任意の文字列を指定します。地理ベースの検索なので、国名、都市名、施設名など場所の名前を指定するとよいでしょう。指定内容はURLエンコードしてください。 |
ip ※オプション | サンプル値:74.125.19.104 | IPアドレスを指定します。ユーザーのIPアドレスに基づいて位置情報を取得する場合に指定します。 |
accuracy ※オプション | サンプル値:3 or 5ft | 取得する位置情報の精度を指定します。パラメーター lat long で指定した地点からの検索対象範囲の半径の距離を指定します。数値のみ指定した場合は単位がメートル扱いになります。フィート扱いにする場合は数値+ftとします。このパラメーターを指定しない場合は 0m として扱われます。 |
granularity ※オプション | サンプル値:city | 取得する位置情報の粒度を指定します。粒度はpoi(Point Of Interest), neighborhood(近隣), city(都市), admin(管理者) or country(国)とな場所のタイプとなります。このパラメーターを指定しない場合は neighborhood(近隣) として扱われます。 |
contained_within ※オプション | サンプル値:247f43d441defc03 | 検索範囲を place_id で指定します。結果は place_id で指定したエリア内に限定されます。 例えば、「San Francisco, CA USA」を検索範囲にする場合は、place_id を 5a110d312052166f とします。 |
attribute:street_address ※オプション | サンプル値:795%20Folsom%20St | 住所検索を行う場合にこのパラメーターを指定します。 |
max_results ※オプション | サンプル値:3 | 取得結果を最大何地点返すか指定します。これは返される結果の数が max_results と等しくなるのを保証するものではありません。 |
callback ※オプション | サンプル値:name | このパラメーターを指定した場合、指定された名前のcallbackをJSONP形式で返します。 |
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta name="robots" content="index"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Twitter API geo search つぶやき投稿で使用されている 位置 場所 一覧 検索</title> </head> <body> <?php ######################################### ### 初期設定 //twitteroauth.phpをインクルードします。ファイルへのパスは環境に合わせて記述下さい。 require_once("./twitteroauth.php"); //Consumer keyの値をTwitterAPI開発者ページでご確認下さい。 $consumerKey = "***************"; //Consumer secretの値を格納 $consumerSecret = "***********************************"; //Access Tokenの値を格納 $accessToken = "***********************************"; //Access Token Secretの値を格納 $accessTokenSecret = "***********************************"; //OAuthオブジェクトを生成する $twObj = new TwitterOAuth($consumerKey,$consumerSecret,$accessToken,$accessTokenSecret); ?> <?php ######################################### ### ページ説明 ?> <h1>Twitter API geo search つぶやき投稿で使用されている 位置 場所 一覧 検索</h1> <!-- 説明ページurl --> <h3><a href="https://wepicks.net/2012/02/02/phpapptwitter-geo_search/">→説明はこちら</a></h3> <hr/> <?php ######################################### ### 取得したデータを展開 ?> <h2>取得したデータを展開</h2> <div style="background-color:#f8f8f8;margin:20px; padding:20px; border:solid #cccccc 1px;"> <!-- // =========================== ここから =========================== --> <?php //API実行データ取得 //東京 'lat' => '35.6894875', 'long' => '139.6917064' $vRequest = $twObj->OAuthRequest("http://api.twitter.com/1/geo/search.json","GET",array('lat' => '35.6894875', 'long' => '139.6917064')); //Jsonデータをオブジェクトに変更 $oObj=json_decode($vRequest); //オブジェクトを展開 if(isset($oObj->{'error'}) && $oObj->{'error'} != ''){ echo "取得に失敗しました。<br>\n"; echo "パラメーターの指定を確認して下さい。<br>\n"; echo "エラーメッセージ:".$oObj->{'error'}."<br>\n"; }else{ echo "<h4>クエリタイプ</h4>\n"; echo "・query type:(".$oObj->{'query'}->{'type'}.")<br>\n"; echo "・type:(".$oObj->{'query'}->{'params'}->{'coordinates'}->{'type'}.")<br>\n"; echo "・lat:(".$oObj->{'query'}->{'params'}->{'coordinates'}->{'coordinates'}[1].")<br>\n"; echo "・long:(".$oObj->{'query'}->{'params'}->{'coordinates'}->{'coordinates'}[0].")<br>\n"; echo "・url:(".$oObj->{'query'}->{'url'}.")<br>\n"; echo "<br>\n"; echo "<h4>クエリ結果</h4>\n"; $iObjSize = sizeof($oObj->{'result'}->{'places'}); for($i=0; $i<$iObjSize; $i++){ echo "<b>No.{$i} places</b><br>\n"; echo "・<b>id</b>:(".$oObj->{'result'}->{'places'}[$i]->{'id'}.")<br>\n"; echo "・<b>country</b>:(".$oObj->{'result'}->{'places'}[$i]->{'country'}.")<br>\n"; echo "・<b>name</b>:(".$oObj->{'result'}->{'places'}[$i]->{'name'}.")<br>\n"; echo "・<b>full_name</b>:(".$oObj->{'result'}->{'places'}[$i]->{'full_name'}.")<br>\n"; echo "・<b>place_type</b>:(".$oObj->{'result'}->{'places'}[$i]->{'place_type'}.")<br>\n"; echo "・<b>country_code</b>:(".$oObj->{'result'}->{'places'}[$i]->{'country_code'}.")<br>\n"; echo "・<b>url</b>:(".$oObj->{'result'}->{'places'}[$i]->{'url'}.")<br>\n"; echo "・<b>bounding_box</b><br>\n"; echo " type:(".$oObj->{'result'}->{'places'}[$i]->{'bounding_box'}->{'type'}.")<br>\n"; $iObjSize2 = sizeof($oObj->{'result'}->{'places'}[$i]->{'bounding_box'}->{'coordinates'}); $aBboxCrd = $oObj->{'result'}->{'places'}[$i]->{'bounding_box'}->{'coordinates'}; for($ii=0; $ii<$iObjSize2; $ii++){ foreach($aBboxCrd[$ii] as $value){ foreach($value as $value2){ echo " ".$value2; }//end foreach echo "<br>\n"; }//end foreach }//end for echo "・<b>contained_within</b><br>\n"; $iObjSize2 = sizeof($oObj->{'result'}->{'places'}[$i]->{'contained_within'}); $aCntWith = $oObj->{'result'}->{'places'}[$i]->{'contained_within'}; for($ii=0; $ii<$iObjSize2; $ii++){ echo " country:(".$aCntWith[$ii]->{'country'}.")<br>\n"; echo " name:(".$aCntWith[$ii]->{'name'}.")<br>\n"; echo " full_name:(".$aCntWith[$ii]->{'full_name'}.")<br>\n"; echo " country_code:(".$aCntWith[$ii]->{'country_code'}.")<br>\n"; echo " url:(".$aCntWith[$ii]->{'url'}.")<br>\n"; echo " bounding_box<br>\n"; echo " type:(".$aCntWith[$ii]->{'bounding_box'}->{'type'}.")<br>\n"; $iObjSize3 = sizeof($aCntWith[$ii]->{'bounding_box'}->{'coordinates'}); $aBboxCrd = $aCntWith[$ii]->{'bounding_box'}->{'coordinates'}; for($iii=0; $iii<$iObjSize3; $iii++){ foreach($aBboxCrd[$iii] as $value){ foreach($value as $value2){ echo " ".$value2; }//end foreach echo "<br>\n"; }//end foreach }//end for }//end for echo "------------------<br>\n"; }//end for }//end else ?> <!-- =========================== ここまで =========================== // --> </div> <hr/> <?php ######################################### ### 取得したオブジェクトの内容 ?> <h2>取得したオブジェクトの内容</h2> <?php var_dump($oObj); ?> <hr/> </body> </html> |
タグ(=記事関連ワード)
タグ: Places & Geo, Twitter, twitter api
日付
投稿日:2012年2月2日
最終更新日:2023年08月25日
最終更新日:2023年08月25日
このカテゴリの他のページ
この記事へのコメント
トラックバックurl
https://wepicks.net/phpapptwitter-geo_search/trackback/