From 81ac1e9cbdb4065b2932b70fb75854b76c0dead6 Mon Sep 17 00:00:00 2001 From: Tor-Einar Skog <tor-einar.skog@nibio.no> Date: Wed, 27 Sep 2023 14:23:35 +0200 Subject: [PATCH] feat: Add bee icon, variable impactRadius for nurseries --- pom.xml | 2 +- .../session/PointOfInterestBean.java | 2 - .../vips/logic/entity/PointOfInterest.java | 18 +++++-- .../entity/PointOfInterestTypeNursery.java | 36 +++++++++++++ .../V15__POI_type_nursery_altered.sql | 28 ++++++++++ .../fireblight/icons/bees-icon-25.png | Bin 0 -> 8611 bytes .../map_applications/fireblight/js/map.js | 50 +++++++++++------- 7 files changed, 109 insertions(+), 27 deletions(-) create mode 100644 src/main/resources/db/migration/V15__POI_type_nursery_altered.sql create mode 100644 src/main/webapp/map_applications/fireblight/icons/bees-icon-25.png diff --git a/pom.xml b/pom.xml index 3b94a9fa..481a18f4 100755 --- a/pom.xml +++ b/pom.xml @@ -217,7 +217,7 @@ <dependency> <groupId>no.nibio.vips</groupId> <artifactId>VIPSCommon</artifactId> - <version>2.0.8-SNAPSHOT</version> + <version>2.0.1</version> </dependency> <dependency> <groupId>javax</groupId> diff --git a/src/main/java/no/nibio/vips/logic/controller/session/PointOfInterestBean.java b/src/main/java/no/nibio/vips/logic/controller/session/PointOfInterestBean.java index fbe1d3e7..99893bbf 100755 --- a/src/main/java/no/nibio/vips/logic/controller/session/PointOfInterestBean.java +++ b/src/main/java/no/nibio/vips/logic/controller/session/PointOfInterestBean.java @@ -394,8 +394,6 @@ public class PointOfInterestBean { if(poi.getGisGeom() != null || (poi.getLongitude() != null && poi.getLatitude() != null)) { GISUtil gisUtil = new GISUtil(); - poi.addProperty("pointOfInterestId", poi.getPointOfInterestId()); - poi.addProperty("pointOfInterestTypeId", poi.getPointOfInterestTypeId()); if(poi.getGisGeom() != null) { diff --git a/src/main/java/no/nibio/vips/logic/entity/PointOfInterest.java b/src/main/java/no/nibio/vips/logic/entity/PointOfInterest.java index 796d7816..c6f1eb58 100755 --- a/src/main/java/no/nibio/vips/logic/entity/PointOfInterest.java +++ b/src/main/java/no/nibio/vips/logic/entity/PointOfInterest.java @@ -269,7 +269,15 @@ public class PointOfInterest implements Serializable, Comparable { { this.properties = new HashMap<>(); } - return properties; + if(this.properties.get("pointOfInterestId") == null) + { + this.properties.put("pointOfInterestId", this.getPointOfInterestId()); + } + if(this.properties.get("pointOfInterestTypeId") == null) + { + this.properties.put("pointOfInterestTypeId", this.getPointOfInterestTypeId()); + } + return this.properties; } /** @@ -358,14 +366,16 @@ public class PointOfInterest implements Serializable, Comparable { @Transient public String getGeoJSON() { - this.addProperty("pointOfInterestId", this.getPointOfInterestId()); - this.addProperty("pointOfInterestTypeId", this.getPointOfInterestTypeId()); return this.gisUtil.getGeoJSONFromGeometry(this.getGisGeom(), this.getProperties()); } public void addProperty(String key, Object value) { - this.getProperties().put(key, value); + if(this.properties == null) + { + this.properties = new HashMap<>(); + } + this.properties.put(key, value); } /** diff --git a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeNursery.java b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeNursery.java index 18565569..0a1c0f2d 100644 --- a/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeNursery.java +++ b/src/main/java/no/nibio/vips/logic/entity/PointOfInterestTypeNursery.java @@ -20,9 +20,12 @@ package no.nibio.vips.logic.entity; import java.io.Serializable; +import java.util.Map; +import javax.persistence.Column; import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; import javax.persistence.Table; +import javax.persistence.Transient; /** * @copyright 2023 <a href="http://www.nibio.no/">NIBIO</a> @@ -32,5 +35,38 @@ import javax.persistence.Table; @DiscriminatorValue("7") @Table(name = "point_of_interest_nursery") public class PointOfInterestTypeNursery extends PointOfInterest implements Serializable { + + private Double impactRadius; + /** + * Radius (in km) of the expected impact (implemented for fire blight) + * of the nursery. Used for map rendering + * @return the impactRadius + */ + @Column(name="impact_radius") + public Double getImpactRadius() { + return impactRadius; + } + + /** + * @param impactRadius the impactRadius to set + */ + public void setImpactRadius(Double impactRadius) { + this.impactRadius = impactRadius; + } + + @Transient + @Override + public String getGeoJSON() + { + this.addProperty("impactRadius", this.getImpactRadius()); + return super.getGeoJSON(); + } + + @Transient + @Override + public Map<String,Object> getProperties() { + this.addProperty("impactRadius", this.getImpactRadius()); + return super.getProperties(); + } } diff --git a/src/main/resources/db/migration/V15__POI_type_nursery_altered.sql b/src/main/resources/db/migration/V15__POI_type_nursery_altered.sql new file mode 100644 index 00000000..2b7cba02 --- /dev/null +++ b/src/main/resources/db/migration/V15__POI_type_nursery_altered.sql @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 NIBIO <http://www.nibio.no/>. + * + * This file is part of VIPSLogic. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + * + */ +/** + * Author: Tor-Einar Skog <tor-einar.skog@nibio.no> + * Created: September 27th, 2023 + */ + + + +-- Add property impact_radius to POI type nursery +ALTER TABLE public.point_of_interest_nursery + ADD COLUMN impact_radius DOUBLE PRECISION DEFAULT 0.0; \ No newline at end of file diff --git a/src/main/webapp/map_applications/fireblight/icons/bees-icon-25.png b/src/main/webapp/map_applications/fireblight/icons/bees-icon-25.png new file mode 100644 index 0000000000000000000000000000000000000000..4ff07995a3a5358964d713d9c0384d83e25c90ef GIT binary patch literal 8611 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 literal 0 HcmV?d00001 diff --git a/src/main/webapp/map_applications/fireblight/js/map.js b/src/main/webapp/map_applications/fireblight/js/map.js index b9671d45..50b99143 100755 --- a/src/main/webapp/map_applications/fireblight/js/map.js +++ b/src/main/webapp/map_applications/fireblight/js/map.js @@ -307,27 +307,37 @@ function getOpenLayersDefaultStyle() */ function diseaseSpreadingPoiStyle(feature, resolution) { - if(feature.getGeometry().getType() == "Point") - { - const radiusInMeters = feature.getProperties()["pointOfInterestTypeId"] == "6" ? 5000 - : feature.getProperties()["pointOfInterestTypeId"] == "7" ? 10000 - : 500; - const fillColor = feature.getProperties()["pointOfInterestTypeId"] == "6" ? [255,0, 0, 0.5] - : feature.getProperties()["pointOfInterestTypeId"] == "7" ? [255, 127,127 , 0.5] - : [255, 255, 255, 0.0]; - const viewProjection = map.getView().getProjection(); - const coordsInViewProjection = feature.getGeometry().getCoordinates(); - const longLat = ol.proj.toLonLat(coordsInViewProjection, viewProjection); - const latitude_rad = longLat[1] * Math.PI / 180; - const circle = new ol.style.Style({ - image: new ol.style.Circle({ - fill: new ol.style.Fill({color: fillColor}), - stroke: new ol.style.Stroke({color: [0, 0, 0, 1], width: 5, lineDash: [5, 10], lineCap:"square"}), - radius: radiusInMeters / (resolution / viewProjection.getMetersPerUnit() * Math.cos(latitude_rad)) - }) - }); + if(feature.getProperties()["pointOfInterestTypeId"] == "7") // Nursery + { + if(feature.getGeometry().getType() == "Point") + { + // impactRadius is set in database for nursery POIs + const radiusInMeters = feature.getProperties()["impactRadius"] * 1000; + const viewProjection = map.getView().getProjection(); + const coordsInViewProjection = feature.getGeometry().getCoordinates(); + const longLat = ol.proj.toLonLat(coordsInViewProjection, viewProjection); + const latitude_rad = longLat[1] * Math.PI / 180; + const circle = new ol.style.Style({ + image: new ol.style.Circle({ + fill: new ol.style.Fill({color: [255, 127,127 , 0.5]}), + stroke: new ol.style.Stroke({color: [0, 0, 0, 1], width: 5, lineDash: [5, 10], lineCap:"square"}), + radius: radiusInMeters / (resolution / viewProjection.getMetersPerUnit() * Math.cos(latitude_rad)) + }) + }); - return [circle]; + return [circle]; + } + } + else if(feature.getProperties()["pointOfInterestTypeId"] == "6") // Apiary site + { + return [new ol.style.Style({ + image: new ol.style.Icon({ + src: 'icons/bees-icon-25.png', + scale: 0.3, + anchor: [0.3,1] + }) + })]; + } return getOpenLayersDefaultStyle(); -- GitLab