annotate matsugaoka/chizu/ko.js @ 3932:ccfc8f7e6427

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

yatex.org