forked from edward/owl-map
Trigger refresh when the map moves
This commit is contained in:
parent
f76ace2a98
commit
f906cb65c5
|
@ -524,10 +524,13 @@ export default {
|
||||||
}
|
}
|
||||||
return count;
|
return count;
|
||||||
},
|
},
|
||||||
|
item_is_selceted(item) {
|
||||||
|
return item.wikidata.isa_list.some(isa => this.isa_ticked.includes(isa));
|
||||||
|
},
|
||||||
selected_items() {
|
selected_items() {
|
||||||
var ret = {};
|
var ret = {};
|
||||||
for (const qid in this.items) {
|
for (const qid in this.items) {
|
||||||
if (this.items[qid] === undefined) continue;
|
if (!this.items[qid]) continue;
|
||||||
var item = this.items[qid];
|
var item = this.items[qid];
|
||||||
if (!item.wikidata) continue;
|
if (!item.wikidata) continue;
|
||||||
|
|
||||||
|
@ -567,12 +570,12 @@ export default {
|
||||||
selected_items(new_items, old_items) {
|
selected_items(new_items, old_items) {
|
||||||
for (const qid of Object.keys(new_items)) {
|
for (const qid of Object.keys(new_items)) {
|
||||||
if (!old_items[qid])
|
if (!old_items[qid])
|
||||||
this.items[qid].group.addTo(this.map);
|
new_items[qid].group.addTo(this.map);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const qid of Object.keys(old_items)) {
|
for (const qid of Object.keys(old_items)) {
|
||||||
if (!new_items[qid])
|
if (!new_items[qid])
|
||||||
this.items[qid].group.removeFrom(this.map);
|
old_items[qid].group.removeFrom(this.map);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
current_osm(osm) {
|
current_osm(osm) {
|
||||||
|
@ -825,6 +828,10 @@ export default {
|
||||||
}
|
}
|
||||||
this.drop_hover_circles();
|
this.drop_hover_circles();
|
||||||
},
|
},
|
||||||
|
map_moved() {
|
||||||
|
this.auto_load();
|
||||||
|
this.update_map_path();
|
||||||
|
},
|
||||||
update_map_path() {
|
update_map_path() {
|
||||||
history.replaceState(null, null, this.build_map_path());
|
history.replaceState(null, null, this.build_map_path());
|
||||||
},
|
},
|
||||||
|
@ -921,17 +928,20 @@ export default {
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
clear_items() {
|
clear_isa() {
|
||||||
|
this.isa_list = [];
|
||||||
|
// this.isa_ticked = [];
|
||||||
|
this.isa_labels = {};
|
||||||
|
this.isa_lookup = {};
|
||||||
|
},
|
||||||
|
|
||||||
|
clear_items() {
|
||||||
for (const qid of Object.keys(this.items)) {
|
for (const qid of Object.keys(this.items)) {
|
||||||
this.items[qid].group.removeFrom(this.map);
|
this.items[qid].group.removeFrom(this.map);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.items = {};
|
this.items = {};
|
||||||
this.isa_list = [];
|
clear_isa();
|
||||||
this.isa_ticked = [];
|
|
||||||
this.isa_labels = {};
|
|
||||||
this.isa_lookup = {};
|
|
||||||
},
|
},
|
||||||
|
|
||||||
load_wikidata_items() {
|
load_wikidata_items() {
|
||||||
|
@ -940,12 +950,10 @@ export default {
|
||||||
this.osm_loaded = false;
|
this.osm_loaded = false;
|
||||||
this.check_for_missing_done = false;
|
this.check_for_missing_done = false;
|
||||||
|
|
||||||
this.clear_items();
|
|
||||||
this.close_item();
|
|
||||||
|
|
||||||
this.wikidata_loading = true;
|
this.wikidata_loading = true;
|
||||||
this.osm_loading = true;
|
this.osm_loading = true;
|
||||||
|
|
||||||
|
|
||||||
var bounds = this.map.getBounds();
|
var bounds = this.map.getBounds();
|
||||||
|
|
||||||
var items_url = this.api_base_url + "/api/1/items";
|
var items_url = this.api_base_url + "/api/1/items";
|
||||||
|
@ -954,6 +962,7 @@ export default {
|
||||||
var params = { bounds: bounds.toBBoxString() };
|
var params = { bounds: bounds.toBBoxString() };
|
||||||
|
|
||||||
axios.get(items_url, { params: params }).then((response) => {
|
axios.get(items_url, { params: params }).then((response) => {
|
||||||
|
this.clear_isa();
|
||||||
this.isa_list = response.data.isa_count;
|
this.isa_list = response.data.isa_count;
|
||||||
this.isa_list.forEach(isa => {
|
this.isa_list.forEach(isa => {
|
||||||
this.isa_ticked.push(isa.qid);
|
this.isa_ticked.push(isa.qid);
|
||||||
|
@ -972,7 +981,8 @@ export default {
|
||||||
response.data.objects.forEach((osm) => {
|
response.data.objects.forEach((osm) => {
|
||||||
var qid = osm.wikidata;
|
var qid = osm.wikidata;
|
||||||
this.items[qid] ||= {'qid': qid};
|
this.items[qid] ||= {'qid': qid};
|
||||||
this.items[qid].osm ||= [];
|
if (this.items[qid].osm) return;
|
||||||
|
this.items[qid].osm = [];
|
||||||
this.items[qid].osm.push(osm);
|
this.items[qid].osm.push(osm);
|
||||||
var group = this.items[qid].group ||= L.featureGroup();
|
var group = this.items[qid].group ||= L.featureGroup();
|
||||||
var icon = osmYellowMarker;
|
var icon = osmYellowMarker;
|
||||||
|
@ -1121,7 +1131,7 @@ export default {
|
||||||
});
|
});
|
||||||
osm.addTo(map);
|
osm.addTo(map);
|
||||||
|
|
||||||
map.on("moveend", this.update_map_path);
|
map.on("moveend", this.map_moved);
|
||||||
this.map = map;
|
this.map = map;
|
||||||
|
|
||||||
this.detail_qid = this.qid_from_url();
|
this.detail_qid = this.qid_from_url();
|
||||||
|
|
Loading…
Reference in a new issue