annotate matsugaoka/chizu1/gpsgo.js @ 3936:8b449670e1a8

added
author KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
date Fri, 06 Dec 2019 14:01:26 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3936
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
1
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
2 // 愛
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
3 function goinit() {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
4 var koeki_latlng = [38.8934, 139.819]; //38.725639, 139.826806
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
5 var baseLayer = {};
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
6 var map_osm = new L.tileLayer(
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
7 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
8 attribution : '&copy; <a href="//osm.org/copyright">OpenStreetMap</a> contributors | <a href="//www.yatex.org/koeki/2018-koryoGO/">KoryoGO</a>'
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
9 , maxZoom: 20, maxNativeZoom: 18
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
10 });
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
11 baseLayer["OpenStreetMap"] = map_osm;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
12 var map_gsi = new L.tileLayer( // 国土地理院
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
13 'https://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png', {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
14 attribution: "<a href='//www.gsi.go.jp/kikakuchousei/kikakuchousei40182.html' target='_blank'>国土地理院</a>"
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
15 , maxZoom: 20, maxNativeZoom: 18
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
16 });
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
17 baseLayer["地理院地図"] = map_gsi;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
18 function putlog(msg, id = "ok") {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
19 var o = document.getElementById(id);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
20 if (o) o.innerHTML = msg;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
21 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
22 var map = L.map("map").setView(koeki_latlng, 15);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
23 map_osm.addTo(map);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
24 L.control.scale().addTo(map);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
25 var mapControl = L.control.layers(baseLayer, null).addTo(map);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
26 var watchTimer = null // geolocation timer
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
27 function clearWatch() {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
28 if (watchTimer) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
29 clearTimeout(watchTimer);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
30 watchTimer = null;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
31 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
32 watchID && navigator.geolocation.clearWatch(watchID);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
33 watchID = null;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
34 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
35 function stopChase() {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
36 clearWatch();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
37 putlog("おしまい", "info");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
38 startButton.removeAttribute("disabled");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
39 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
40 function gotIt() {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
41 stopChase();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
42 var g = document.getElementById("get");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
43 if (g) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
44 // document.getElementById("map").style.visibility = "hidden";
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
45 document.getElementById("map").style.zIndex = 0;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
46 // alert("みつかったー"+watchTimer);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
47 g.style.display = "block";
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
48 g.style.width = 500;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
49 g.style.height = "auto";
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
50 g.style.top = "20%";
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
51 g.style.right = "90%";
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
52 g.style.opacity = 0.8;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
53 g.style.zIndex = 20;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
54 g.style.transition = 10;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
55 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
56 putlog("捕獲!", "rest");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
57 tgt && map.removeLayer(tgt);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
58 tgt = L.marker(targetLoc).addTo(map);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
59 tgt.bindPopup(foundMsg).openPopup();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
60 setTimeout(function() {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
61 var g = document.getElementById("get");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
62 // g.removeChild(g.childNodes[0]);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
63 g.style.display = 'none';
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
64 putlog("", "rest");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
65 tgt._popup.setContent("さようなら");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
66 }, 10000);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
67 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
68 function dispDistance() {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
69 //var d = getDistance(currentLoc, targetLoc);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
70 var d = currentLoc.distanceTo(targetLoc);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
71 d = Math.abs(Math.round(d-Math.min(curAccuracy, 10), 1));
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
72 var msg = currentLoc+targetLoc;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
73 putlog(msg);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
74 putlog("あと"+ d + "m", "rest");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
75 putlog("Count: "+ ++repeatCount, "info");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
76 if (d < threshold) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
77 gotIt();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
78 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
79 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
80 var repeatCount = 0, repeatMax = 30;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
81 var currentLoc = koeki_latlng;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
82 var curMarker, curCircle, curAccuracy;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
83 var curMarkerIcon = L.icon({
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
84 iconUrl: defIcon || "main.png",
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
85 // iconSize: [80, 120],
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
86 iconAnchor: [0, 00]
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
87 });
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
88 function mainMarker(pos) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
89 return L.marker(pos, {icon: curMarkerIcon});
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
90 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
91 function onLocationFound(e) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
92 curAccuracy = e.accuracy / 2;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
93
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
94 if (curMarker) map.removeLayer(curMarker);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
95 curMarker = mainMarker(e.latlng).addTo(map);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
96 curMarker.bindPopup("いまココ").openPopup();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
97 currentLoc = e.latlng;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
98 if (repeatCount%3 == 0) map.setView(e.latlng); // 3回に1回センタリング
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
99 if (curCircle) map.removeLayer(curCircle);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
100 curCircle = L.circle(e.latlng, curAccuracy).addTo(map);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
101 dispDistance();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
102 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
103 function onLocationError(e) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
104 putlog(e.message, "err")
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
105 if (true && !curMarker) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
106 currentLoc = L.latLng(koeki_latlng);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
107 curMarker = mainMarker(currentLoc).addTo(map);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
108 curMarker.bindPopup("いまココ").openPopup();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
109 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
110 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
111
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
112 var tgt;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
113 function setNewLoc(latlng) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
114 putlog(latlng+"に設定しました", 'err');
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
115 targetLoc = latlng; // タップした地点をゴールにすり替える
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
116 dispDistance();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
117 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
118 map.on("click", function(e) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
119 if (tgt) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
120 map.removeLayer(tgt);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
121 map.panTo(e.latlng);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
122 if (true) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
123 tgt = L.marker(e.latlng, {draggable: true}).addTo(map);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
124 tgt.on("dragend", function (e) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
125 setNewLoc(e.target.getLatLng());
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
126 });
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
127 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
128 setNewLoc(e.latlng);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
129 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
130 });
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
131 map.on('zoomend', function (e) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
132 if (map._locateOptions) map._locateOptions.maxZoom = map.getZoom();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
133 });
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
134 var watchID, geoOpt = {maximumAge: 0, timeout: 2000,
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
135 enableHighAccuracy: true},
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
136 watchINT = 5000, watchTimer;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
137 function watchRestart() {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
138 putlog("Sleeping...Count:"+repeatCount, "info");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
139 clearWatch();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
140 if (watchTimer) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
141 clearTimeout(watchTimer);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
142 watchTimer = null;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
143 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
144 watchTimer = setTimeout(startWatch, 7500);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
145 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
146 function watchFound(pos) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
147 putlog("Sleeping...FOUND!", "info");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
148 putlog("", "err");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
149 onLocationFound({
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
150 latlng: L.latLng([
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
151 pos.coords.latitude, pos.coords.longitude]),
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
152 accuracy: pos.coords.accuracy});
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
153 // watchRestart();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
154 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
155 function watchError() {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
156 onLocationError({
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
157 message: "GPS信号が弱いようです"});
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
158 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
159 function startWatch() {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
160 putlog("Start...Count:"+repeatCount, "info");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
161 clearWatch(); // confirmation
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
162 watchID = navigator.geolocation.watchPosition(
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
163 // watchID = navigator.geolocation.getCurrentPosition(
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
164 watchFound, watchError, geoOpt
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
165 );
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
166 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
167 var startButton = document.getElementById("start");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
168 startButton.addEventListener("click", function(e) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
169 startWatch();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
170 putlog("はじめます", "info");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
171 this.setAttribute("disabled", true);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
172 if (tgt) { // 開始したらターゲットを消す
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
173 map.removeLayer(tgt); // マニュアルモード時はマーカが見える
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
174 tgt = null;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
175 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
176 })
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
177 var endButtonClicks = 0;
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
178 document.getElementById("stop").addEventListener("click", function(e) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
179 stopChase();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
180 if (++endButtonClicks > 9) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
181 document.getElementById("zuru").style.display = "inline";
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
182 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
183 });
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
184 document.getElementById("zuru").addEventListener("click", function(e) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
185 gotIt();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
186 });
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
187 document.getElementById("(C)").addEventListener("click", function(e) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
188 tgt && tgt.removeLayer(tgt);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
189 tgt = L.marker(targetLoc).addTo(map);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
190 putlog("マニュアル設定モード: 好きな位置をタップしてゴールを設定できます。置いたマーカをドラッグして移動できます。「追跡をはじめる」でゴールマーカが消えます。", "info")
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
191 });
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
192 // umappop([{'color': 'red', 'file': 'koryo-spots.geojson'}]);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
193 function loadgeofile(arg, callback) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
194 var xobj = new XMLHttpRequest();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
195 xobj.overrideMimeType("application/json");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
196 xobj.open('GET', arg['file'], true);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
197 xobj.onreadystatechange = function () {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
198 if (xobj.readyState == 4 && xobj.status == "200") {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
199 callback(arg, xobj.responseText);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
200 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
201 };
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
202 xobj.send(null);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
203 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
204 var json = loadgeofile({file: "koryo-spots.geojson"},
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
205 function(arg, text) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
206 var geojson = JSON.parse(text);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
207 var jL = L.geoJson(geojson);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
208 jL.addTo(map);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
209 });
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
210 var now = new Date();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
211 var today = ""+now.getFullYear()+"/"+(now.getMonth()+1)+"/"+now.getDate();
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
212 var koryogo = localStorage.getItem("koryogo-warning");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
213 if (koryogo != today) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
214 if (confirm("【silk Re:roadの 5つの誓い】\n\
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
215 ・危険な場所には行かない。\n\
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
216 ・移動するときはこの画面を見続けない。\n\
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
217 ・人の話を聞くべきときは画面を閉じる。\n\
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
218 ・すべては自己責任で楽しむ。\n\
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
219 ・誰かにやらせるときにはこれらを守らせる。")) {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
220 localStorage.setItem("koryogo-warning", today);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
221 } else {
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
222 alert("さようなら...");
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
223 var body = document.getElementsByTagName("body")[0];
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
224 body.parentNode.removeChild(body);
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
225 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
226 }
KITAJIMA Ryuto <c118077@roy.e.koeki-u.ac.jp>
parents:
diff changeset
227 }

yatex.org