From e0bcbeaa84c2adf3b8a179cdea792dd58fa109b2 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 1 Sep 2022 12:08:11 +0200 Subject: Geo: select geo item to display on the sheet --- ishtar_common/static/js/ishtar-map.js | 40 ++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 12 deletions(-) (limited to 'ishtar_common/static/js') diff --git a/ishtar_common/static/js/ishtar-map.js b/ishtar_common/static/js/ishtar-map.js index a3f275720..95f8ad3e3 100644 --- a/ishtar_common/static/js/ishtar-map.js +++ b/ishtar_common/static/js/ishtar-map.js @@ -29,6 +29,8 @@ var geoloc_activated = {}; var fetching_msg = "Fetching data..."; +var base_maps_msg = "Base maps"; + var _map_submit_search = function(query_vars, name, source, extra){ if (!extra) extra = "default"; var modal_base_text = $('.modal-progress .modal-header').html(); @@ -523,7 +525,10 @@ var _display_items = function(map_id, features, offset_x, offset_y){ } var feat = features[idx_feat]; var properties = feat.getProperties(); - var link = link_template[map_id].replace("", properties["id"]); + var link = ""; + if (link_template[map_id]){ + link = link_template[map_id].replace("", properties["id"]); + } var txt = "
  • " + link + " " + properties['name'] + "
  • "; window_content += txt; if (idx_feat < 5){ @@ -623,7 +628,7 @@ var initialize_base_map = function(map_id, layers){ map_layers[map_id] = [ new ol.layer.Group({ - title: 'Base maps', + title: base_maps_msg, visible: true, layers: get_layers(layers) }) @@ -677,7 +682,7 @@ var display_map = function(map_id, points, lines_and_polys, layers){ if (points){ link_template[map_id] = points['link_template']; - } else { + } else if (lines_and_polys) { link_template[map_id] = lines_and_polys['link_template']; } if (map[map_id]){ @@ -686,7 +691,6 @@ var display_map = function(map_id, points, lines_and_polys, layers){ initialize_base_map(map_id, layers); } display_points(map_id, points); - display_lines_and_polys(map_id, lines_and_polys); init_popup(map_id); @@ -698,31 +702,43 @@ var display_map = function(map_id, points, lines_and_polys, layers){ } }; -var display_points = function(map_id, points){ +var display_points = function(map_id, points, first_init){ if (!points) return; point_features[map_id] = geojson_format.readFeatures(points); - enable_clustering(map_id); + console.log(708); + if (!cluster_source[map_id]){ + enable_clustering(map_id); + } else { + cluster_source[map_id].getSource().clear(); + cluster_source[map_id].getSource().refresh(); + } cluster_source[map_id].getSource().addFeatures(point_features[map_id]); - if (points.features.length){ + if (first_init && points.features && points.features.length){ map_view[map_id].fit(cluster_source[map_id].getSource().getExtent()); - if (map_view[map_id].getZoom() > 12){ - map_view[map_id].setZoom(12); + if (map_view[map_id].getZoom() > 14){ + map_view[map_id].setZoom(14); } } }; -var display_lines_and_polys = function(map_id, lines_and_polys){ +var display_lines_and_polys = function(map_id, lines_and_polys, first_init){ if (!lines_and_polys) return; vector_features[map_id] = geojson_format.readFeatures(lines_and_polys); - vector_source[map_id] = new ol.source.Vector(); + if (!vector_source[map_id]){ + vector_source[map_id] = new ol.source.Vector(); + } else { + vector_source[map_id].clear(); + vector_source[map_id].refresh(); + } vector_source[map_id].addFeatures(vector_features[map_id]); vector_layer[map_id] = new ol.layer.Vector({ source: vector_source[map_id], style: get_vector_style }); + console.log(738); map[map_id].addLayer(vector_layer[map_id]); - if (lines_and_polys.features.length){ + if (first_init && lines_and_polys.features && lines_and_polys.features.length){ map_view[map_id].fit(vector_source[map_id].getExtent()); } }; -- cgit v1.2.3