twicliがGeotaggingの送信に対応

前回(id:NeoCat:20100722:1279741190)に引き続き、twicliの位置情報関連のアップデート。
今度はtwicliから位置情報つきのtweetを送信できるようになりました。


こちらもオリジナルのコードは@_wa_さん。
twicli の位置情報送信機能を試作して: 「わ」の日記もどき


以下の条件でtweet時に位置情報を付加します。

  1. 位置情報の取得に対応したWebブラウザを使う。
  2. TwitterのWebページのアカウント設定で「ツイートに位置情報を付ける」を有効にする
  3. 以上を満たすとtwicliに「GeoTagging OFF」という表示が出るので、これをクリックして「ON」にする
  4. ブラウザによって位置情報取得の許可を求めるダイアログ等が表示されるので、許可する
  5. 位置取得に成功すると、「緯度、経度、精度(m)」が表示される


緯度、経度をクリックすると、現在位置をGoogle Map上に表示します (geomap.jsプラグイン有効時のみ)。
位置取得には、IPアドレス無線LANGPSなどから利用できるものが選択されるようです。


位置情報を送信したくない場合は、もう一度クリックして「GeoTargetting OFF」に戻せばOKです。なお起動時は常にOFFになっています。

GeoTargettingを使用しない場合は、「+」タブのPreferencesで「Enable GeoTagging」をOFFにしてSave&リロードすれば、「GeoTargetting ON/OFF」の表示を消すことができます。

JavaScriptでの位置取得

JavaScriptでの位置取得は以下のように行っています。
navigator.geolocationがObjectであることを確認した上で、

	// 取得開始
	geowatch = navigator.geolocation.watchPosition(function(pos){
			// 緯度: pos.coords.latitude,  経度: pos.coords.latitude
			// 精度(m単位): pos.coords.accuracy 
         });

とすれば、位置が更新される度に指定したfunctionを呼んでくれます。停止時は

	// 取得停止
	navigator.geolocation.clearWatch(geowatch);

でOK。一回だけ取得すれば良いなら、watchPositionの代わりにgetCurrentPositionを使います。
なお上記以外にも引数でオプション指定が可能です。


詳しくは
Geolocation API Specification 2nd Edition
などが参考になります。