GoogleMapAPIを使って、
watchpositonで現在位置情報をつねに取得しながら、
現在地を追跡する、ということを行っているのですが、
対象者が動くと,いちいち取得をくり返し、
そのたびにマップが一から読み込まれるので、
マップ画面が見にくく、操作もしづらいというのもあって、
現在位置情報を取得する「間隔」を設定しようと、
javascript
1id = navigator.geolocation.watchPosition(successFunc, errorFunc, 2 { 3 enableHighAccuracy: true, maximumAge: 30000 4 } 5 );
と定型どおりに入力し、実行したのですが、
間隔の設定が反映しておらず、依然として、動くと、激しい取得が生じます。
どこが間違っているのか、どうかご教授ください。
環境は monaca for visualstudio でコードを書き、、
monaca アプリ を使って、iphoneで表示しています。
<html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <title>iPhone 位置情報取得</title> <script src="http://maps.google.com/maps/api/js?sensor=true"></script> <script> //経度緯度用変数を初期化 var latitude = ""; var longitude = ""; id = navigator.geolocation.watchPosition(successFunc, errorFunc, { enableHighAccuracy: true, maximumAge: 30000 } ); //正常に緯度経度情報が取得できた時に呼ばれる関数 function successFunc(e){ //前回の緯度経度情報と比較して、変わっていたら地図を更新 if( (e.coords.latitude != latitude) || (e.coords.longitude != longitude) ){ //緯度を取得 latitude = e.coords.latitude; //経度を取得 longitude = e.coords.longitude; //緯度経度を設定 var myLatLng = new google.maps.LatLng(latitude,longitude); //オプションを設定 var myOptions = { zoom: 16, //縮尺レベル center: myLatLng, //地図の中心位置 mapTypeId: google.maps.MapTypeId.ROADMAP } //地図を生成し、指定したHTMLエレメントに表示 var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); //「google.maps.Map」で地図を生成し「map_canvas」に表示 } // マーカーの表示 var marker = new google.maps.Marker({ position: myLatLng, map: map, title: "" }); } //エラーが起きた場合に呼ばれる関数 function errorFunc(e) { switch (e.code) { case 1: alert("エラー:GPSの利用が許可されていません。GPSを使えるように設定してください。"); break; case 2: alert("エラー:位置情報が取得できませんでした。"); break; case 3: alert("エラー:タイムアウトしました。"); break; default: alert("エラー:位置情報を表示できませんでした。"); break; } } </script> </head> <body style="margin:0px; padding:0px;"> <div id="map_canvas" style="width:100%; height:100%"></div> </body> </html>
あなたの回答
tips
プレビュー