summaryrefslogtreecommitdiff
path: root/ishtar_common/static/js/ishtar-map.js
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/static/js/ishtar-map.js')
-rw-r--r--ishtar_common/static/js/ishtar-map.js24
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);