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;
|
||||
},
|
||||
item_is_selceted(item) {
|
||||
return item.wikidata.isa_list.some(isa => this.isa_ticked.includes(isa));
|
||||
},
|
||||
selected_items() {
|
||||
var ret = {};
|
||||
for (const qid in this.items) {
|
||||
if (this.items[qid] === undefined) continue;
|
||||
if (!this.items[qid]) continue;
|
||||
var item = this.items[qid];
|
||||
if (!item.wikidata) continue;
|
||||
|
||||
|
@ -567,12 +570,12 @@ export default {
|
|||
selected_items(new_items, old_items) {
|
||||
for (const qid of Object.keys(new_items)) {
|
||||
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)) {
|
||||
if (!new_items[qid])
|
||||
this.items[qid].group.removeFrom(this.map);
|
||||
old_items[qid].group.removeFrom(this.map);
|
||||
}
|
||||
},
|
||||
current_osm(osm) {
|
||||
|
@ -825,6 +828,10 @@ export default {
|
|||
}
|
||||
this.drop_hover_circles();
|
||||
},
|
||||
map_moved() {
|
||||
this.auto_load();
|
||||
this.update_map_path();
|
||||
},
|
||||
update_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)) {
|
||||
this.items[qid].group.removeFrom(this.map);
|
||||
}
|
||||
|
||||
this.items = {};
|
||||
this.isa_list = [];
|
||||
this.isa_ticked = [];
|
||||
this.isa_labels = {};
|
||||
this.isa_lookup = {};
|
||||
clear_isa();
|
||||
},
|
||||
|
||||
load_wikidata_items() {
|
||||
|
@ -940,12 +950,10 @@ export default {
|
|||
this.osm_loaded = false;
|
||||
this.check_for_missing_done = false;
|
||||
|
||||
this.clear_items();
|
||||
this.close_item();
|
||||
|
||||
this.wikidata_loading = true;
|
||||
this.osm_loading = true;
|
||||
|
||||
|
||||
var bounds = this.map.getBounds();
|
||||
|
||||
var items_url = this.api_base_url + "/api/1/items";
|
||||
|
@ -954,6 +962,7 @@ export default {
|
|||
var params = { bounds: bounds.toBBoxString() };
|
||||
|
||||
axios.get(items_url, { params: params }).then((response) => {
|
||||
this.clear_isa();
|
||||
this.isa_list = response.data.isa_count;
|
||||
this.isa_list.forEach(isa => {
|
||||
this.isa_ticked.push(isa.qid);
|
||||
|
@ -972,7 +981,8 @@ export default {
|
|||
response.data.objects.forEach((osm) => {
|
||||
var qid = osm.wikidata;
|
||||
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);
|
||||
var group = this.items[qid].group ||= L.featureGroup();
|
||||
var icon = osmYellowMarker;
|
||||
|
@ -1121,7 +1131,7 @@ export default {
|
|||
});
|
||||
osm.addTo(map);
|
||||
|
||||
map.on("moveend", this.update_map_path);
|
||||
map.on("moveend", this.map_moved);
|
||||
this.map = map;
|
||||
|
||||
this.detail_qid = this.qid_from_url();
|
||||
|
|
Loading…
Reference in a new issue