diff --git a/web/map/test.mado/sample.html b/web/map/test.mado/sample.html new file mode 100644 index 0000000..9b0d4cb --- /dev/null +++ b/web/map/test.mado/sample.html @@ -0,0 +1,28 @@ + + + + +はんいとれ + + + + + + + + + +Start +Stop +
+ + diff --git a/web/map/test.mado/sample.js b/web/map/test.mado/sample.js new file mode 100644 index 0000000..bb2a236 --- /dev/null +++ b/web/map/test.mado/sample.js @@ -0,0 +1,68 @@ +function gpsGetTimer() { + var timerInterval = 5000; // GPS取得再試行までの間隔(ミリ秒) + var mymap = L.map("mymap").setView([38.891, 139.824], 16); + L.tileLayer('//cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png', { + attribution: + '\ + 国土地理院' + }).addTo(mymap); + var gpsmarker = L.marker(mymap.getCenter()).addTo(mymap); + gpsmarker.bindPopup("捕捉中...").openPopup(); + var nTrial = 10; + var tmId = null;// 最初はnullにしておく + var gpsID = null; kyori = 0; + + function tryGetGPS() { //gpsをとる動き + gpsmarker.setPopupContent("start").openPopup() + gpsID = navigator.geolocation.getCurrentPosition( + onSuccess, onError,{maximumAge: 0, + enableHighAccuracy: true, + timeout: 9000}); + } + function stopGPS() { //gpsをとるのをやめる動き + navigator.geolocation.clearWatch(gpsID); + clearTimeout(tmId); + alert("とめたよ!"); + + } + var polyline = L.polyline([], {color: "red"}).addTo(mymap); + + function onSuccess(pos) { + // 引数 pos は L.latlng で変換してから使用する + var latlng = L.latLng([pos.coords.latitude, pos.coords.longitude]); + mymap.flyTo(latlng); //その地点までとぶ + gpsmarker.setPopupContent( + "現在地は "+latlng+"です" + ).openPopup().setLatLng(latlng); + gpsmarker.setLatLng(latlng); + + var treg = [38.893846,139.819144]; //目的地の座標 + //位置1.distanceTo(位置2)で2点間距離が得られる + kyori = latleng.distanceTo(treg); + if (kyori >= 10){ + alert("お宝は近いよ!"); + } + + } + function onError(err) { + var restN = "あと"+(--nTrial)+"回試行します。"; + if (nTrial > 0) { + gpsmarker.setPopupContent("捕捉失敗:"+restN).openPopup(); + tmId = setTimeout(tryGetGPS, timerInterval); // 5秒後に再試行 + //tryGetGPS(); //setTimeoutでNGな機種はこちらにする + } else { + var m = '中止します。'; + gpsmarker.setPopupContent(m).openPopup(); + } + } + + //tryGetGPS(); + document.getElementById("start").addEventListener( //startボタンを押したとき + "click", tryGetGPS + ); + + document.getElementById("stop").addEventListener( //stopボタンを押したとき + "click", stopGPS + ); +} +document.addEventListener("DOMContentLoaded", gpsGetTimer, false);