summaryrefslogtreecommitdiff
path: root/ishtar_common/static/js
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-01-09 12:16:15 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-16 16:40:54 +0200
commit9e2cedc18a4edfe280be76d698d5523f98506de8 (patch)
treef6ffd2f603eca1800724fd0e5da44e8d184bd33e /ishtar_common/static/js
parentc96c21da408852a284cc182654e545c1f6a25e89 (diff)
downloadIshtar-9e2cedc18a4edfe280be76d698d5523f98506de8.tar.bz2
Ishtar-9e2cedc18a4edfe280be76d698d5523f98506de8.zip
✨ sheet map: display buffer - 🐛 sheet map: fix 2d point display
Diffstat (limited to 'ishtar_common/static/js')
-rw-r--r--ishtar_common/static/js/ishtar-map.js43
1 files changed, 39 insertions, 4 deletions
diff --git a/ishtar_common/static/js/ishtar-map.js b/ishtar_common/static/js/ishtar-map.js
index 394b27feb..3ee41e2d1 100644
--- a/ishtar_common/static/js/ishtar-map.js
+++ b/ishtar_common/static/js/ishtar-map.js
@@ -309,11 +309,43 @@ var cluster_get_style = function(feature, resolution){
var style = _styleCache[size];
if (!style && size == 1){
- style = _styleCache[size] = [get_icon_style()];
+ style = new Array();
+ if (ishtar_display_buffer){
+ let _current_feature = feature.getProperties()["features"][0];
+ let _feat_properties = _current_feature.getProperties();
+ let _buffer = _feat_properties["buffer"];
+ if (_buffer){
+ let point_resolution = ol.proj.getPointResolution(
+ map[_feat_properties["map_id"]].getView().getProjection(), 1,
+ _current_feature.getGeometry().flatCoordinates
+ );
+ let radius = _buffer * point_resolution / resolution * 2;
+ let color = "255,128,0";
+ style.push(
+ new ol.style.Style({
+ image: new ol.style.Circle({
+ radius: radius,
+ stroke: new ol.style.Stroke({
+ color:"rgba("+color+", 0.8)",
+ width: 2
+ }),
+ fill: new ol.style.Fill({
+ color:"rgba("+color+", 0.5)"
+ })
+ })
+ })
+
+ )
+ }
+ }
+ style.push(get_icon_style());
+ if (!ishtar_display_buffer){
+ _styleCache[size] = style;
+ }
} else if (!style && size > 1){
- var color = size > cluster_threshold_2 ? "192,0,0" : size > cluster_threshold_1 ? "255,128,0" : "0,128,0";
- var radius = Math.max(8, Math.min(size * 0.75, 20));
- var lbl = size.toString();
+ let color = size > cluster_threshold_2 ? "192,0,0" : size > cluster_threshold_1 ? "255,128,0" : "0,128,0";
+ let radius = Math.max(8, Math.min(size * 0.75, 20));
+ let lbl = size.toString();
style = _styleCache[size] = [
new ol.style.Style({
image: new ol.style.Circle({
@@ -734,6 +766,8 @@ var display_map = function(map_id, points, lines_and_polys, layers){
}
};
+var ishtar_display_buffer = false;
+
var display_points = function(map_id, points){
if (!points) return;
point_features[map_id] = geojson_format.readFeatures(points);
@@ -742,6 +776,7 @@ var display_points = function(map_id, points){
} else {
reinit_clustering(map_id);
}
+ point_features[map_id].forEach(function(feat){feat.set("map_id", map_id)});
cluster_source[map_id].getSource().addFeatures(point_features[map_id]);
};