diff options
Diffstat (limited to 'ishtar_common/static/js')
-rw-r--r-- | ishtar_common/static/js/ishtar-map.js | 40 | ||||
-rw-r--r-- | ishtar_common/static/js/ishtar.js | 32 |
2 files changed, 41 insertions, 31 deletions
diff --git a/ishtar_common/static/js/ishtar-map.js b/ishtar_common/static/js/ishtar-map.js index e2090eec6..c21cd890e 100644 --- a/ishtar_common/static/js/ishtar-map.js +++ b/ishtar_common/static/js/ishtar-map.js @@ -720,9 +720,9 @@ var display_map = function(map_id, points, lines_and_polys, layers){ } else { initialize_base_map(map_id, layers); } - if (lines_and_polys) display_lines_and_polys(map_id, lines_and_polys, true); - if (points) display_points(map_id, points, true); - + if (lines_and_polys) display_lines_and_polys(map_id, lines_and_polys); + if (points) display_points(map_id, points); + zoom_to_extent(map_id); init_popup(map_id); map[map_id].on('click', manage_click_on_map(map_id)); @@ -733,7 +733,7 @@ var display_map = function(map_id, points, lines_and_polys, layers){ } }; -var display_points = function(map_id, points, first_init){ +var display_points = function(map_id, points){ if (!points) return; point_features[map_id] = geojson_format.readFeatures(points); if (!cluster_source[map_id]){ @@ -742,15 +742,9 @@ var display_points = function(map_id, points, first_init){ reinit_clustering(map_id); } cluster_source[map_id].getSource().addFeatures(point_features[map_id]); - 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() > 14){ - map_view[map_id].setZoom(14); - } - } }; -var display_lines_and_polys = function(map_id, lines_and_polys, first_init){ +var display_lines_and_polys = function(map_id, lines_and_polys){ if (!lines_and_polys) return; vector_features[map_id] = geojson_format.readFeatures(lines_and_polys); if (!vector_source[map_id]){ @@ -766,11 +760,29 @@ var display_lines_and_polys = function(map_id, lines_and_polys, first_init){ }); map[map_id].addLayer(vector_layer[map_id]); - if (first_init && lines_and_polys.features && lines_and_polys.features.length){ - map_view[map_id].fit(vector_source[map_id].getExtent()); - } }; +var zoom_to_extent = function(map_id){ + let extent; + if (cluster_source[map_id]) extent = cluster_source[map_id].getSource().getExtent(); + if (vector_source[map_id]){ + let vector_extent = vector_source[map_id].getExtent(); + if (vector_extent){ + if (extent){ + ol.extent.extend(extent, vector_extent); + } else { + extent = vector_extent; + } + } + } + if (extent) { + map_view[map_id].fit(extent); + if (map_view[map_id].getZoom() > 14){ + map_view[map_id].setZoom(14); + } + } +} + var _geo_points = new Array(); var _geo_other = new Array(); diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index e59ce4f2c..2a2b4fa9f 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -1456,29 +1456,27 @@ var register_map = function(map_id, result){ } $(".search_button").click(); }); - if (points){ - var lbl = ""; - if (points['features'].length){ - lbl += displayed_map_msg.format( - number_with_commas(points['features'].length) - ); - } - if (points['no-geo'].length){ - if (points['features'].length){ - lbl += " - "; + if (points || line_and_polys){ + let lbl = ""; + let feature_nb = 0; + if (points && points['features'].length) feature_nb = points['features'].length; + if (line_and_polys && line_and_polys['features'].length) feature_nb += line_and_polys['features'].length; + + if (feature_nb > 0) lbl += displayed_map_msg.format(number_with_commas(feature_nb)); + if (result['no-geo'].length){ + if (lbl != ""){ + lbl += "<br>"; } - lbl += non_displayed_map_msg.format( - number_with_commas(points['no-geo'].length) - ); + lbl += non_displayed_map_msg.format(number_with_commas(result['no-geo'].length)); lbl += " <a href='#' id='no-geo-" + map_id + "'>" + non_displayed_map_link_msg + "</a>"; } $("#ishtar-map-info-" + map_id).html(lbl); no_geo_window_content = "<ul>"; - for (var idx in points['no-geo']){ - no_geo = points['no-geo'][idx]; - var link = link_template[map_id].replace("<pk>", no_geo["id"]); - var txt = "<li>" + link + " " + no_geo['name'] + "</li>"; + for (const idx in result['no-geo']){ + no_geo = result['no-geo'][idx]; + let link = link_template[map_id].replace("<pk>", no_geo["id"]); + let txt = "<li>" + link + " " + no_geo['name'] + "</li>"; no_geo_window_content += txt; } no_geo_window_content += "</ul>"; |