forked from edward/owl-map
Highlight markers on hover and selection
This commit is contained in:
parent
96319f8662
commit
03f2eb6d46
|
@ -26,6 +26,8 @@ var isa_labels = {};
|
|||
var items_url = "/api/1/items";
|
||||
var osm_objects_url = "/api/1/osm";
|
||||
var missing_url = "/api/1/missing";
|
||||
var hover_circles = [];
|
||||
var selected_circles = [];
|
||||
|
||||
var isa_count = {};
|
||||
|
||||
|
@ -305,6 +307,12 @@ function mouseover(item) {
|
|||
line.setStyle({ weight: 6 });
|
||||
});
|
||||
}
|
||||
|
||||
item.markers.forEach((marker) => {
|
||||
var coords = marker.getLatLng();
|
||||
var circle = L.circle(coords, {radius: 25}).addTo(map);
|
||||
hover_circles.push(circle);
|
||||
});
|
||||
}
|
||||
|
||||
function mouseout(item) {
|
||||
|
@ -316,6 +324,18 @@ function mouseout(item) {
|
|||
line.setStyle({ weight: 3 });
|
||||
});
|
||||
}
|
||||
|
||||
hover_circles.forEach((circle) => {
|
||||
circle.removeFrom(map);
|
||||
});
|
||||
hover_circles = [];
|
||||
}
|
||||
|
||||
function close_item_details() {
|
||||
selected_circles.forEach((circle) => {
|
||||
circle.removeFrom(map);
|
||||
});
|
||||
selected_circles = [];
|
||||
}
|
||||
|
||||
function mouse_events(marker, qid) {
|
||||
|
@ -331,6 +351,13 @@ function mouse_events(marker, qid) {
|
|||
isa_card.classList.add("visually-hidden");
|
||||
detail_card.classList.remove("visually-hidden");
|
||||
detail_card.classList.add("bg-highlight");
|
||||
close_item_details();
|
||||
|
||||
item.markers.forEach((marker) => {
|
||||
var coords = marker.getLatLng();
|
||||
var circle = L.circle(coords, {radius: 25, color: "orange"}).addTo(map);
|
||||
selected_circles.push(circle);
|
||||
});
|
||||
|
||||
window.setTimeout(function() {
|
||||
detail_card.classList.remove("bg-highlight");
|
||||
|
@ -353,15 +380,12 @@ function add_wikidata_marker(item, marker_data) {
|
|||
var qid = item.qid;
|
||||
var label = `${item.label} (${item.qid})`;
|
||||
var marker = L.marker(marker_data, { icon: icon });
|
||||
// var tooltip = marker.bindTooltip(item.qid, {permanent: true, direction: 'bottom', opacity: 0.5});
|
||||
|
||||
// var popup = item_popup(item);
|
||||
// marker.bindPopup(popup);
|
||||
mouse_events(marker, qid);
|
||||
|
||||
var group = add_to_feature_group(item.qid, marker);
|
||||
group.addTo(map);
|
||||
items[qid].wikidata = item;
|
||||
|
||||
marker_data.marker = marker;
|
||||
}
|
||||
|
||||
|
@ -386,6 +410,7 @@ function load_wikidata_items() {
|
|||
|
||||
checkbox_change();
|
||||
|
||||
close_item_details();
|
||||
detail_card.classList.add("visually-hidden");
|
||||
loading.classList.remove("visually-hidden");
|
||||
load_text.classList.add("visually-hidden");
|
||||
|
@ -430,6 +455,8 @@ function load_wikidata_items() {
|
|||
|
||||
var group = add_to_feature_group(qid, marker);
|
||||
group.addTo(map);
|
||||
items[qid].markers ||= [];
|
||||
items[qid].markers.push(marker);
|
||||
|
||||
if (osm.type != "node" && osm.geojson) {
|
||||
var mapStyle = { fillOpacity: 0 };
|
||||
|
@ -473,6 +500,8 @@ document.getElementById("search-form").onsubmit = function (e) {
|
|||
function close_detail() {
|
||||
isa_card.classList.remove("visually-hidden");
|
||||
detail_card.classList.add("visually-hidden");
|
||||
|
||||
close_item_details();
|
||||
}
|
||||
|
||||
document.getElementById("load-btn").onclick = load_wikidata_items;
|
||||
|
|
Loading…
Reference in a new issue