forked from edward/owl-map
		
	Tidy map.js
This commit is contained in:
		
							parent
							
								
									23a58485de
								
							
						
					
					
						commit
						02563beb65
					
				| 
						 | 
					@ -21,11 +21,20 @@ var osm_loaded = false;
 | 
				
			||||||
var loading = document.getElementById("loading");
 | 
					var loading = document.getElementById("loading");
 | 
				
			||||||
var load_text = document.getElementById("load-text");
 | 
					var load_text = document.getElementById("load-text");
 | 
				
			||||||
var isa_card = document.getElementById("isa-card");
 | 
					var isa_card = document.getElementById("isa-card");
 | 
				
			||||||
 | 
					var checkbox_list = document.getElementsByClassName("isa-checkbox");
 | 
				
			||||||
var isa_labels = {};
 | 
					var isa_labels = {};
 | 
				
			||||||
var connections = {};
 | 
					var connections = {};
 | 
				
			||||||
map.addLayer(group);
 | 
					map.addLayer(group);
 | 
				
			||||||
map.zoomControl.setPosition("topright");
 | 
					map.zoomControl.setPosition("topright");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					map.on("moveend", function (e) {
 | 
				
			||||||
 | 
					  var zoom = map.getZoom();
 | 
				
			||||||
 | 
					  var c = map.getCenter();
 | 
				
			||||||
 | 
					  var lat = c.lat.toFixed(5);
 | 
				
			||||||
 | 
					  var lng = c.lng.toFixed(5);
 | 
				
			||||||
 | 
					  history.replaceState(null, null, `/map/${zoom}/${lat}/${lng}`);
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var blueMarker = L.ExtraMarkers.icon({
 | 
					var blueMarker = L.ExtraMarkers.icon({
 | 
				
			||||||
  icon: "fa-wikidata",
 | 
					  icon: "fa-wikidata",
 | 
				
			||||||
  markerColor: "blue",
 | 
					  markerColor: "blue",
 | 
				
			||||||
| 
						 | 
					@ -74,16 +83,17 @@ var osm = L.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png", {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
osm.addTo(map);
 | 
					osm.addTo(map);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function load_complete() {
 | 
				
			||||||
 | 
					  loading.classList.add("visually-hidden");
 | 
				
			||||||
 | 
					  load_text.classList.remove("visually-hidden");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function update_wikidata() {
 | 
					function update_wikidata() {
 | 
				
			||||||
  if (
 | 
					  if (
 | 
				
			||||||
    Object.keys(wikidata_items).length === 0 ||
 | 
					    Object.keys(wikidata_items).length === 0 ||
 | 
				
			||||||
    Object.keys(osm_objects).length === 0
 | 
					    Object.keys(osm_objects).length === 0
 | 
				
			||||||
  ) {
 | 
					  ) {
 | 
				
			||||||
    if (wikidata_loaded && osm_loaded) {
 | 
					    if (wikidata_loaded && osm_loaded) load_complete();
 | 
				
			||||||
      loading.classList.add("visually-hidden");
 | 
					 | 
				
			||||||
      load_text.classList.remove("visually-hidden");
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -116,8 +126,7 @@ function update_wikidata() {
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  loading.classList.add("visually-hidden");
 | 
					  load_complete();
 | 
				
			||||||
  load_text.classList.remove("visually-hidden");
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function isa_only(e) {
 | 
					function isa_only(e) {
 | 
				
			||||||
| 
						 | 
					@ -125,8 +134,6 @@ function isa_only(e) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  var this_id = e.target.parentNode.childNodes[0].id;
 | 
					  var this_id = e.target.parentNode.childNodes[0].id;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  var checkbox_list = document.getElementsByClassName("isa-checkbox");
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  for (const checkbox of checkbox_list) {
 | 
					  for (const checkbox of checkbox_list) {
 | 
				
			||||||
    checkbox.checked = checkbox.id == this_id;
 | 
					    checkbox.checked = checkbox.id == this_id;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					@ -136,7 +143,7 @@ function isa_only(e) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function show_all_isa(e) {
 | 
					function show_all_isa(e) {
 | 
				
			||||||
  e.preventDefault();
 | 
					  e.preventDefault();
 | 
				
			||||||
  var checkbox_list = document.getElementsByClassName("isa-checkbox");
 | 
					
 | 
				
			||||||
  for (const checkbox of checkbox_list) {
 | 
					  for (const checkbox of checkbox_list) {
 | 
				
			||||||
    checkbox.checked = true;
 | 
					    checkbox.checked = true;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
| 
						 | 
					@ -145,12 +152,9 @@ function show_all_isa(e) {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function checkbox_change() {
 | 
					function checkbox_change() {
 | 
				
			||||||
  var checkbox_list = document.getElementsByClassName("isa-checkbox");
 | 
					 | 
				
			||||||
  var ticked = [];
 | 
					  var ticked = [];
 | 
				
			||||||
  for (const checkbox of checkbox_list) {
 | 
					  for (const checkbox of checkbox_list) {
 | 
				
			||||||
    if (checkbox.checked) {
 | 
					    if (checkbox.checked) ticked.push(checkbox.id.substr(4));
 | 
				
			||||||
      ticked.push(checkbox.id.substr(4));
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for (const qid in wikidata_items) {
 | 
					  for (const qid in wikidata_items) {
 | 
				
			||||||
| 
						 | 
					@ -340,14 +344,7 @@ function load_wikidata_items() {
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
document.getElementById("show-all-isa").onclick = show_all_isa;
 | 
					document.getElementById("search-form").onsubmit = function (e) {
 | 
				
			||||||
 | 
					 | 
				
			||||||
var load_btn = document.getElementById("load-btn");
 | 
					 | 
				
			||||||
load_btn.onclick = load_wikidata_items;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
var search_btn = document.getElementById("search-btn");
 | 
					 | 
				
			||||||
var search_form = document.getElementById("search-form");
 | 
					 | 
				
			||||||
search_form.onsubmit = function (e) {
 | 
					 | 
				
			||||||
  e.preventDefault();
 | 
					  e.preventDefault();
 | 
				
			||||||
  var search_text = document.getElementById("search-text").value.trim();
 | 
					  var search_text = document.getElementById("search-text").value.trim();
 | 
				
			||||||
  if (!search_text) return;
 | 
					  if (!search_text) return;
 | 
				
			||||||
| 
						 | 
					@ -373,10 +370,5 @@ search_form.onsubmit = function (e) {
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
map.on("moveend", function (e) {
 | 
					document.getElementById("load-btn").onclick = load_wikidata_items;
 | 
				
			||||||
  var zoom = map.getZoom();
 | 
					document.getElementById("show-all-isa").onclick = show_all_isa;
 | 
				
			||||||
  var c = map.getCenter();
 | 
					 | 
				
			||||||
  var lat = c.lat.toFixed(5);
 | 
					 | 
				
			||||||
  var lng = c.lng.toFixed(5);
 | 
					 | 
				
			||||||
  history.replaceState(null, null, `/map/${zoom}/${lat}/${lng}`);
 | 
					 | 
				
			||||||
});
 | 
					 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue