たぐま!を公開します

RinKoujiro2007-07-15

GPS携帯を使って座標にタグづけするアプリ「たぐま!」を公開します。

auGPS対応携帯に対応しています。
該当している方は
http://hostname.jp/tagma/
に行ってみて下さい。もしくは添付のQRコードを読み取ってもいいです。

とりあえずは「タグリスト閲覧」とかやると楽しいかも知れません。もしくは速攻「位置登録」で自分の座標を登録してタグ張りまくってもいいです。

既知の問題:
・ページによって文字コードがばらばら(携帯からはちゃんと見れると思います。なにぶんにも自分のでしかテストしてないので)
・地図リンク機能が動いてない(ごめんなさいごめんなさい)
・ページ構成がクズ(カルマ機能のリンクをどうにかせんといかんです。ごめんなさい)
・後色々(そのうちに出てくるだろう)

連絡はmixiの僕のページまでお願い出来れば幸いです。

緯度と経度で始点から終点までの距離を計算するクラスを作ってみました。

mixi日記に書いたネタですが、始点と終点のGPS情報から間の直線距離を求めるクラスを作ってみました。
とは言っても、
http://q.hatena.ne.jp/1105008401
に書いてあるVBAのソースをPHPに移植しただけなので、どういう理論で出来ているか、はよく判らんのですが。伊達に数学投げ出してないぜ。

とりあえず、池袋駅からサンシャインまでの距離は当たってるっぽいので、方位については君やあなたやみんなが検証してくれると非常に嬉しいです。

では、早速。

http://www.yaskey.cside.tv/mapserver/note/gps.html
も参考にしようと思ってます、はい。

<?php
// クラス初期化
$gps = new GPSDistance();

//池袋駅
// 緯度と経度は度分秒で指定
// 南緯・西経を現す時は、全て-で指定する必要がある。
$fromLongi = $gps->toLht(35, 43, 36,491); // 緯度
$fromLatti = $gps->toLht(139, 42, 51.509); // 経度

// サンシャイン
$toLongi = $gps->toLht(35, 43, 43,053); // 緯度
$toLatti = $gps->toLht(139, 43, 21.266); // 経度

// 算出
$result = array();
$result = $gps->getDistanceFromCordi($fromLongi, $fromLatti, $toLongi, $toLatti);
print_r($result);

class GPSDistance
{

	private $ER = 6378.14;
	private $PI = 3.14159265358979;
	private $sig = 0;

	function __construct() {
	}

	// LHT座標変換
	// $dig = 度
	// $min = 分
	// $sec = 秒
	function toLht($dig, $min, $sec = 0) {
		return (($dig + ($min / 60) + ($sec / 3600)) * 10000);
	}

	// 距離測定
	// $fromLongi 始点緯度
	// $fromLatti 始点経度
	// $toLongi 終点緯度
	// $toLatti 終点経度
	// 戻り値:配列 array(距離, 方角)
	function getDistanceFromCordi($fromLongi, $fromLatti, $toLongi, $toLatti) {

		if (($fromLongi == $toLongi) 
			&& ($fromLatti = $toLatti)) {
			return array(0, 0);
		}

		// ラジアン変換
		$fx = $this->_toRadian($fromLongi);
		$fy = $this->_toRadian($fromLatti);
		$tx = $this->_toRadian($toLongi);
		$ty = $this->_toRadian($toLatti);

		$result = array();

		// 距離計算
		$ram = $tx - $fx;

		$xx = (sin($fy) * sin($ty)) + (cos($fy) * cos($ty) * cos($ram));
		if ($xx == -1) {
			$sig = $this->PI;
		} else if ($xx == 1) {
			$sig = 0;
		} else {
			$sig = atan(($xx * -1) / sqrt(($xx * -1) * $xx + 1)) + ($this->PI / 2);
		}

		$distance = (($this->ER * $sig) * 1000);

		// 方位換算
		$ssig = sin($sig);
		if ($ssig == 0) {
			$direction = 0;
		} else {
			$yy = ((cos($ty) * sin($ram)) / $ssig);
			if (($yy * -1) + 1 < 0) {
				if (sin($ram) > 0) {
					$direction = 90;
				} else {
					$direction = 270;
				}
			} else if (sqrt((($yy * -1) * $yy) + 1) == 0) {
				if (sin($ram) > 0) {
					$direction = 90;
				} else {
					$direction = 270;
				}
			} else {
				$direction = atan($yy / sqrt((($yy * -1) * $yy) + 1));
				if (((cos($fy) * sin($tx)) - 
					(sin($fy) * cos($tx) * cos($ram))) < 0) {
					$direction = $this->PI - $direction;
				}
				$direction = (($direction * 180) / $this->PI);
				if ($direction < 0) {
					$direction = $direction + 360;
				}
			}
		}

		return array($distance, $direction);

	}

	private function _toRadian($target) {
		return (($target * $this->PI) / 1800000);
	}
}
?>

飛んで逃げる目覚まし時計

http://www.thinkgeek.com/homeoffice/lights/9171/
以前にengadgetかどっかで見た覚えがあるけど、Thinkgeekに入荷されていたので紹介。
「飛んで逃げる」ように見えるけどこれは嘘。
正しくは「アラームを止めるための鍵をプロペラでどこかに飛ばしてしまう時計」。
部屋を探し回って鍵を見つけないと、アラームを止められない、という寸法。
寝起きの運動は目覚めをよくするらしいですから、いいと思います。

こちらハヤタ、フジ隊員どうぞ

http://www.thinkgeek.com/gadgets/watches/954e/
はできないけど、128x128のカラー液晶で動画再生が出来る時計が登場。内蔵メモリは余裕の2G。気になる再生時間は音楽なら7時間、動画なら4時間。
こういうアイテムって定期的に出てくるね。そろそろ一台持ってもいいかなーとは思う。アレゲ好きとして。
あ、マイクロフォン内蔵で録音も出来るそうです。

iPhoneの販売を前にAppleStoreとAT&Tショップが早仕舞い

http://www.pdastreet.com/articles/2007/6/2007-6-28-Early-Store-Closings.html
29日はAppleStoreは14時閉店、AT&Tは16時半閉店。両方とも18時に再オープンして
iPhoneを発売開始する模様。営業時間は深夜0時まで。
数量制限は一人2個、早い者勝ち(予約など一切無し)。
土曜日からAppleStoreでのiPhoneワークショップ及びジーニアスバーでのサポート開始。

まさにiPhone狂想曲ですな。とか言いながら、もしアメリカに居たら自分も似たような事やってそうな気がするけど。
や、祭は参加する事に意義があるんですよ。

htc、VistaとWindowsMobile両方を搭載したUMPCの開発を発表

http://www.brighthand.com/default.asp?newsID=13124
コードネームシャングリラ、モデル番号はX9500。

両方積むメリットって何なんだろ。
データシート出てるけど発売時期も値段も不明なので訳せず。でも高そう。

PalmのWiFiチームが丸ごとクビに

http://www.brighthand.com/default.asp?newsID=13133
ただし、PalmWiFiを積むのを止める訳ではなく、現状でWiFiサポートがスケジュールより遅れている為にチーム丸ごとの解雇、と言う意味が強いのではないか? との事。

アメリカらしい話とは言えガクブル。