iPhone+GoogleMap利用の一例

前々からこんなの作りたかったので頑張って作ってみました。

なにこれ

システムの全容

↓の機能を組み合わせることで実現しています

  • iPhoneの機能
    • iPhoneは常にGPS位置を補足し、変化があった時にHTTP-POSTで座標を送る
  • HTTP(PHP+DB)サーバの機能
    • HTTP鯖(update.php)は、iPhoneから送られた座標を元にSQLクエリを生成しでデータを挿入する
    • HTTP鯖(view.php)は、クライアント(iPhone?PC?)に対してDBにある座標データでGoogleMap上に線を引くJavaScriptを生成する

プログラムの一部

コレだけじゃ微妙なんで、一例としてObjective-CでHTTP-POSTを実現するプログラムの例を晒します(リクエストがあればphpとかも出します)。Objective-Cは数時間しか触ってないけど、CocoaAPIを利用するくらいだったらできるようになりました。

// POSTはBODYに「lat=35.664694&lng=139.700016」みたいなデータが入る感じ
	// Set URL
	NSURL *url = [NSURL URLWithString:@"http://himitudesu.org/update.php"];
	// URL Request
	NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:url];
	[req setHTTPMethod:@"POST"];
	[req setHTTPBody:[[NSString stringWithFormat:@"lat=%lf&lng=%lf", latitude, longitude] dataUsingEncoding:NSASCIIStringEncoding]];
	// URL Response
	NSURLResponse *resp;
	// URL ErrorCode
	NSError *err;
	// Exec HTTP Request
	NSData *result = [NSURLConnection sendSynchronousRequest:req returningResponse:&resp error:&err];

今後の発展の方法(やるかわからないけど)

  • ログインとかできるようにする
  • 自宅位置を特定されないように工夫する
  • 他人の走行ルートを同じMAP上に出せるようにする
  • その場所に居た時刻をわかるようにする(色を変えたり)

感想

自転車で実験したんですが画像の走行ルートを試験するだけで1時間もかかってしまい、すごく疲れた。車とかバイクとか使えばよかった。