diff options
Diffstat (limited to 'ishtar_common/static/js/ishtar-map.js')
-rw-r--r-- | ishtar_common/static/js/ishtar-map.js | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/ishtar_common/static/js/ishtar-map.js b/ishtar_common/static/js/ishtar-map.js index 0613ec285..c1bed2554 100644 --- a/ishtar_common/static/js/ishtar-map.js +++ b/ishtar_common/static/js/ishtar-map.js @@ -169,7 +169,11 @@ var manage_click_on_map = function(map_id){ }; }; +var current_event; + var click_on_feature = function(map_id, feature, e){ + // console.log("click_on_feature"); + current_event = e; if (!$(e.target).is($(popup_item[map_id])) && !$.contains($(popup_item[map_id])[0], e.target) ) { @@ -183,11 +187,11 @@ var click_on_feature = function(map_id, feature, e){ current_feature = feature; if (!feature) return; - var timeout = 200; + var timeout = 10; setTimeout(function(){ // zoom on aggregated var key = feature.get('key'); - if (key && key.length > 6 && key.substring(0, 7) == 'cluster'){ + if (feature.get('name') || feature.get('key')){ feature = click_on_cluster(map_id, feature); } }, timeout); @@ -197,6 +201,7 @@ var auto_zoom = false; var click_on_cluster = function(map_id, feature, zoom_level, duration, nb_zoom, current_nb_items){ + // console.log("click_on_cluster"); if (!duration){ // zoom animation must be slower duration = animation_duration * 2; @@ -271,9 +276,13 @@ var click_on_cluster = function(map_id, feature, zoom_level, duration, nb_zoom, var display_cluster_detail = function(map_id, cluster){ // console.log("display_cluster_detail"); var features = cluster.getProperties()['features'] + var offset_x = 0; var offset_y = -21; - if (features.length == 1){ + if (!features){ + features = [cluster]; + offset_y = -7; + } else if (features.length == 1){ offset_y = -54; } display_items(map_id, features, offset_x, offset_y); @@ -319,7 +328,12 @@ var _display_items = function(map_id, features, offset_x, offset_y){ $("#ishtar-map-window-" + map_id + " .modal-body").html(window_content); $(popup_item[map_id]).html(popup_content); $("." + ul_class + " .map-list-detail").click(open_map_window(map_id)); - popup[map_id].setPosition(geom.getCoordinates()); + + if (geom.getType() == "Point"){ + popup[map_id].setPosition(geom.getCoordinates()); + } else { + popup[map_id].setPosition(current_event.coordinate); + } popup[map_id].setOffset([offset_x, offset_y]); $(popup_item[map_id]).css({opacity: 0}); $(popup_item[map_id]).show(0, function(){ @@ -417,7 +431,7 @@ var display_map = function(map_id, points, lines_and_polys, layers){ if (points){ link_template[map_id] = points['link_template']; } else { - /// link_template = lines_and_polys['link_template']; + link_template[map_id] = lines_and_polys['link_template']; } if (map[map_id]){ redraw_map(map_id, layers); |