カテゴリー別アーカイブ: PHP

Facebook+Unity

UnityからのFacebookへ投稿するサンプルを作ってみました。
Facebookアプリの設定は別途必要です。

githubにて公開してます。

カテゴリー: PHP, Unity, プログラム | Facebook+Unity はコメントを受け付けていません。

jQuerymobileで

Exif情報のページをスマホ用にと思って、PHPとjQuery mobileで作ってみました。とりあえず動作はしたけれど、機種によって画面サイズが違うので、画像のサイズが中途半端。画面の拡大縮小も未対応。
まだまだ手を入れるべきところが多そうです。

カテゴリー: html5, jQuery mobile, PHP | jQuerymobileで はコメントを受け付けていません。

Exif情報のジオタグからマッピング

デジカメや携帯などで撮影した画像ファイルにはExif情報というものがついてる。撮影日時だけでなく、カメラのメーカーや焦点距離、シャッタースピード、絞りなど。GPSつきの携帯やスマホだと、GPSの情報もExif情報に含める事ができる。

かれこれ2年程前、携帯で撮影した写真のExif情報からGPS情報を取り出して、その写真をGoogleMap上にマッピングするプログラムをためしに作った。ただ、Androidにしてからは試してなかった。思う事もあってひさびさに試してみたら、な~んやそれ?くらいに見事に動作しない。
いろいろ試してみて、画像ファイルにあるはずと思っていたGPS情報が無いことに気がついた。基地局からおおまかな場所を割り出してGPSの精度を上げてるらしいので、撮影の前後が圏外だと現在位置の取得に時間がかかりすぎて失敗してる可能性もあるのかも、と憶測してみたけれど正確な原因はわからず。自分がスマホのカメラの設定で位置情報をくっつけない、という設定にしていたのかもしれないし。たぶん自分の設定ミスだろう。
GPS情報の入った画像ファイルを添付してSPモードメールで送信したら、うまくいった。が、Gmail経由だと無反応。しばらくわからず、メールのソースを見てわかりました。スマホのGmailから送ったメールはHTML形式メールに対応するようなデータ構造になってる。SPモードやiモードのようにプレーンテキストにファイルが添付された構造、と思いこんで疑わなかった。
こういうサービスはブログ用などで既にあるからわざわざ作るのもどうだろう?と思っていたけれど、自分で作ってみてビジネス用途向けには足りない、もしくは使わない機能もありそうな気がする。

実際に試す、という練習する理由もできたけれど、ひさびさにまっすぐに走れない風だった。

カテゴリー: Android, geo, PHP | Exif情報のジオタグからマッピング はコメントを受け付けていません。

InsidePolygon API

多角形の内側か外側かの判定をGoogleMapで使うためのAPI「InsidePolygon API」を作ってみました。サンプルページはこちら。配列で渡す要素が多いので、dojo toolkitを組み込みました。試用中なので止まる可能性はあります。pythonで書いてgoogleapp engineで公開、というところまでやってみたいところです。

(2011-08-30追記)

昼過ぎに動作しないな、と思って見ていたらGooglemapオブジェクトのメンバ変数がなぜか変わっていました。昨日までは

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
area_points = [
	new google.maps.LatLng(34.97523190685564,138.3859671977616),
	new google.maps.LatLng(34.97511322547018,138.3870132592774),
	new google.maps.LatLng(34.975293445284095,138.38804322753913),
	new google.maps.LatLng(34.97600992501225,138.3881666091538),
	new google.maps.LatLng(34.97590003589033,138.38629442726142)
];
//(中略)
v_count = area_points.length;
dojo.io.script.get({
	url: "http://inside-polygon.appspot.com/",
	timeout: 3000,
	callbackParamName: "callback",
	content: {
		args0:v_count, //ポリゴンの配列要素の数 JSON形式
		args1:dojo.toJson(area_points), //ポリゴンの配列 JSON形式
		args2:dojo.toJson({lat:e.latLng.lat(),lng:e.latLng.lng()})
	},
	load: function(response){
		var res = dojo.fromJson(response);
		console.log(res.result.judge);
		if(res.result.judge){
			output_str += " <font color=red>範囲内です。</font>";
			lat_lng.innerHTML += output_str;
		}
	}
});

取得した各ポイントのメンバ変数をデバッガで見ると、緯度がOa,経度がPaという変数に入っていました。
変数名を見て何が入ってるのか想像がつかないので、何となく違和感は感じてました。ですが、こういうものなのか、くらいで気にせずに使ってました。昼過ぎになぜか動かない。このメンバ変数はどうやら変化する様子で、緯度がPa,経度がQaという変数に入っていました。接続してる環境とかで変わるものなんでしょうか?アクセス数に応じて変化するとか?よくはわかりません。
デバッガをよく見ると、ちゃんとアクセサとしてlat(),lng()という関数が用意されているみたい。、ここ2,3日で書いたスクリプトとか全部に修正か。。。と思いつつ、横着せずにこれを使って受渡し用の配列を作成。

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
area_points = [
	new google.maps.LatLng(34.97523190685564,138.3859671977616),
	new google.maps.LatLng(34.97511322547018,138.3870132592774),
	new google.maps.LatLng(34.975293445284095,138.38804322753913),
	new google.maps.LatLng(34.97600992501225,138.3881666091538),
	new google.maps.LatLng(34.97590003589033,138.38629442726142)
];
//(中略)
v_count = area_points.length;
vec = new Array(v_count);
//判定対象の点の配列を作成。
for(var i = 0;i < v_count ;i++){
	vec[i] = {lat:area_points[i].lat(),lng:area_points[i].lng()};
}
dojo.io.script.get({
	url: "http://inside-polygon.appspot.com/",
	timeout: 3000,
	callbackParamName: "callback",
	content: {
		args0:v_count, //ポリゴンの配列要素の数 JSON形式
		args1:dojo.toJson(vec), //ポリゴンの配列 JSON形式
		args2:dojo.toJson({lat:e.latLng.lat(),lng:e.latLng.lng()})
	},
	load: function(response){
		var res = dojo.fromJson(response);
		console.log(res.result.judge);
		if(res.result.judge){
			output_str += " <font color=red>範囲内です。</font>";
			lat_lng.innerHTML += output_str;
		}
	}
});
カテゴリー: geo, Javascript, PHP | InsidePolygon API はコメントを受け付けていません。

Webしおり

Chrome、Safariでは動作します。iPhone3でも動いたけれど、画面が縦に長くて操作性悪かった。

http://road2win.plala.jp/e-velo/report/sample/webstorage/

まだまだ改善の余地はあると思います。使っているうちに思いつくこともありそう。アプリケーションキャッシュは未実装。しおり、ということなので、しおりにメモ機能をつけてもいいのかも、などと考え中。触れば触るほどわからんことが出てくる。

カテゴリー: Javascript, PHP, プログラム | Webしおり はコメントを受け付けていません。