Create a gist now

Instantly share code, notes, and snippets.

JavaScriptでGPSログを記録してルートラボconnectにアップロードするサンプル。 http://yahoo.jp/nZ9Xy7
<html>
<body>
<button>start</button>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(function(){
if(!navigator.geolocation) return;
var points = [];
var watchID = null;
$('button').click(function(){
if(watchID){ // ログ記録中
navigator.geolocation.clearWatch(watchID);
watchID = null;
if(points.length>1){
// ログが溜まってればアップロードボタン
$(this).text('upload');
}else{
// ログが溜まってなければスタートボタンに戻る
$(this).text('start');
points = [];
}
}else if(points.length>1){ // アップロード待ちの状態
var pos = $.map(points,function(n, i){
return ""+n.latitude+","+n.longitude;
}).join(',');
// ルートラボconnectに点列を渡します。
// 詳しい仕様は http://yahoo.jp/GtZog4 参照
$('<form action="http://latlonglab.yahoo.co.jp/route/connect" method="POST"><input type="hidden" name="points" value="'+pos+'"></form>').submit();
}else{ // スタート待ちの状態
watchID = navigator.geolocation.watchPosition(function(position){
// 精度でフィルタリングします
if(position.coords.accuracy < 300){
points.push(position.coords);
}
});
$(this).text('stop');
}
});
});
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment