You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@unomi.apache.org by sh...@apache.org on 2020/11/11 09:21:00 UTC
[unomi] 14/17: feat(geo location condition): add support for getting location path f… (#61) (#210)
This is an automated email from the ASF dual-hosted git repository.
shuber pushed a commit to branch unomi-1.5.x
in repository https://gitbox.apache.org/repos/asf/unomi.git
commit 03da6d7473f7d5f706722732d773de8b53630012
Author: Shir Bromberg <sb...@yotpo.com>
AuthorDate: Tue Nov 10 11:55:47 2020 +0200
feat(geo location condition): add support for getting location path f… (#61) (#210)
geo location condition: add support for getting location path from parameters and cast integers.
(cherry picked from commit 1904dacc5933490dd523787c8f78c0e2c427f1e7)
---
.../GeoLocationByPointSessionConditionESQueryBuilder.java | 9 +++++----
.../cxs/conditions/geoLocationByPointSessionCondition.json | 5 +++++
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java
index 001bd3d..21d27b1 100644
--- a/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java
+++ b/plugins/baseplugin/src/main/java/org/apache/unomi/plugins/baseplugin/conditions/GeoLocationByPointSessionConditionESQueryBuilder.java
@@ -29,14 +29,15 @@ public class GeoLocationByPointSessionConditionESQueryBuilder implements Conditi
@Override
public QueryBuilder buildQuery(Condition condition, Map<String, Object> context, ConditionESQueryBuilderDispatcher dispatcher) {
String type = (String) condition.getParameter("type");
+ String name = condition.getParameter("name") == null ? "location" : (String) condition.getParameter("name");
if("circle".equals(type)) {
- Double circleLatitude = (Double) condition.getParameter("circleLatitude");
- Double circleLongitude = (Double) condition.getParameter("circleLongitude");
+ Double circleLatitude = ((Number) condition.getParameter("circleLatitude")).doubleValue();
+ Double circleLongitude = ((Number) condition.getParameter("circleLongitude")).doubleValue();
String distance = condition.getParameter("distance").toString();
if(circleLatitude != null && circleLongitude != null && distance != null) {
- return QueryBuilders.geoDistanceQuery("location")
+ return QueryBuilders.geoDistanceQuery(name)
.point(circleLatitude, circleLongitude)
.distance(distance);
}
@@ -47,7 +48,7 @@ public class GeoLocationByPointSessionConditionESQueryBuilder implements Conditi
Double rectLongitudeSW = (Double) condition.getParameter("rectLongitudeSW");
if(rectLatitudeNE != null && rectLongitudeNE != null && rectLatitudeSW != null && rectLongitudeSW != null) {
- return QueryBuilders.geoBoundingBoxQuery("location")
+ return QueryBuilders.geoBoundingBoxQuery(name)
.setCorners(rectLatitudeNE, rectLongitudeNE,rectLatitudeSW, rectLongitudeSW);
}
}
diff --git a/plugins/baseplugin/src/main/resources/META-INF/cxs/conditions/geoLocationByPointSessionCondition.json b/plugins/baseplugin/src/main/resources/META-INF/cxs/conditions/geoLocationByPointSessionCondition.json
index 809d690..f33be79 100644
--- a/plugins/baseplugin/src/main/resources/META-INF/cxs/conditions/geoLocationByPointSessionCondition.json
+++ b/plugins/baseplugin/src/main/resources/META-INF/cxs/conditions/geoLocationByPointSessionCondition.json
@@ -54,6 +54,11 @@
"id": "distance",
"type": "string",
"multivalued": false
+ },
+ {
+ "id": "name",
+ "type": "string",
+ "multivalued": false
}
]
}
\ No newline at end of file