Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/map service #2

Open
wants to merge 40 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
b77b996
Initial work for map microservice
jwomeara Apr 9, 2024
ca566e1
Merge remote-tracking branch 'origin/integration' into integration
jwomeara Apr 9, 2024
387c74e
Removed some unnecessary files
jwomeara Apr 10, 2024
7574fb7
Applied 'Prettier' code formatter
jwomeara Apr 10, 2024
5d2d953
map service progress
jwomeara May 8, 2024
cd565fe
fixing some things that broke with the merge
jwomeara May 9, 2024
958086d
wip
jwomeara May 21, 2024
456955f
Merge remote-tracking branch 'origin/integration' into feature/mapSer…
jwomeara May 23, 2024
a72be9f
wip
jwomeara Jun 24, 2024
9bd34b6
Merge remote-tracking branch 'origin/integration' into feature/mapSer…
jwomeara Jun 26, 2024
0bce81a
bumped metadata-utils
jwomeara Jun 26, 2024
7f871eb
bumped type-utils version
jwomeara Jun 26, 2024
4147d0b
Merge remote-tracking branch 'origin/integration' into feature/mapSer…
jwomeara Jul 17, 2024
64ab751
Merge remote-tracking branch 'origin/integration' into feature/mapSer…
jwomeara Jul 17, 2024
6278f5a
Updated main layout to show microservice version
jwomeara Jul 18, 2024
509a713
Merge remote-tracking branch 'origin/integration' into feature/mapSer…
jwomeara Jul 19, 2024
c9cd3f1
map service WIP
jwomeara Jul 19, 2024
12d0b4c
moved lucene to jexl parsing to datawave-core-language module
jwomeara Aug 9, 2024
ca45a36
bumped datawave version
jwomeara Aug 9, 2024
646db60
Updated type-utils
jwomeara Aug 21, 2024
a8b81ed
most map features complete
jwomeara Sep 5, 2024
b8ed9d1
cleaning up the map microservice
jwomeara Sep 6, 2024
6c2b394
all map logic implemented
jwomeara Sep 9, 2024
7233b08
Merge remote-tracking branch 'origin/integration' into feature/mapSer…
jwomeara Sep 10, 2024
199d5fd
Added .gitignore
jwomeara Sep 10, 2024
f7349ff
Merge branch 'main' into feature/mapService
jwomeara Sep 10, 2024
b6a47c9
fixed license
jwomeara Sep 10, 2024
aed74af
Updated type-utils
jwomeara Sep 10, 2024
b7201ba
updated datawave to 7.6.0-SNAPSHOT
jwomeara Sep 10, 2024
b46d662
fixed type-utils snapshot version
jwomeara Sep 10, 2024
eff201f
Updated map service to use external leaflet
jwomeara Sep 12, 2024
088d0f1
ran the formatter
jwomeara Sep 12, 2024
5a0d5d5
Update Dockerfile
jwomeara Sep 12, 2024
f86ce2f
Added the ability to set the tile preview coordinates in configuration
jwomeara Sep 13, 2024
68062d0
Merge remote-tracking branch 'origin/feature/mapService' into feature…
jwomeara Sep 13, 2024
3aa5487
Added tooltips to buttons
jwomeara Sep 16, 2024
248acaf
updated versions in pom
jwomeara Sep 16, 2024
55fccbe
Updated initial map zoom level, and fixed issue where zooming to poin…
jwomeara Sep 17, 2024
3f3ded4
fixed pom versions
jwomeara Sep 22, 2024
262abe8
Updating with latest changes from main
jwomeara Oct 10, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
target/
service/logs/**
logs/**
**/.DS_Store
logs/

.idea/
*.iml
Expand Down
159 changes: 159 additions & 0 deletions api/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>gov.nsa.datawave.microservice</groupId>
<artifactId>datawave-microservice-parent</artifactId>
<version>4.0.1-SNAPSHOT</version>
<relativePath>../../../microservice-parent/pom.xml</relativePath>
</parent>
<artifactId>map-api</artifactId>
<version>1.0.0-SNAPSHOT</version>
<url>https://github.com/NationalSecurityAgency/datawave-map-service</url>
<scm>
<connection>scm:git:https://github.com/NationalSecurityAgency/datawave-map-service.git</connection>
<developerConnection>scm:git:git@github.com:NationalSecurityAgency/datawave-map-service.git</developerConnection>
<tag>HEAD</tag>
<url>https://github.com/NationalSecurityAgency/datawave-map-service</url>
</scm>
<properties>
<version.datawave>7.8.0-SNAPSHOT</version.datawave>
<version.geotools>29.0</version.geotools>
<version.jts>1.19.0</version.jts>
<version.microservice.metadata-utils>4.0.7-SNAPSHOT</version.microservice.metadata-utils>
<version.microservice.type-utils>3.1.2-SNAPSHOT</version.microservice.type-utils>
<version.mockito>4.5.1</version.mockito>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-geo</artifactId>
<version>${version.datawave}</version>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-jexl</artifactId>
<version>${version.datawave}</version>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-language</artifactId>
<version>${version.datawave}</version>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.microservice</groupId>
<artifactId>metadata-utils</artifactId>
<version>${version.microservice.metadata-utils}</version>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.microservice</groupId>
<artifactId>type-utils</artifactId>
<version>${version.microservice.type-utils}</version>
<exclusions>
<exclusion>
<artifactId>slf4j-reload4j</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
<exclusion>
<artifactId>log4j</artifactId>
<groupId>log4j</groupId>
</exclusion>
<exclusion>
<artifactId>*</artifactId>
<groupId>org.geotools</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
<version>${version.geotools}</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
<version>${version.geotools}</version>
</dependency>
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
<version>${version.jts}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>${version.mockito}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-geo</artifactId>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-jexl</artifactId>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.core</groupId>
<artifactId>datawave-core-language</artifactId>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.microservice</groupId>
<artifactId>metadata-utils</artifactId>
</dependency>
<dependency>
<groupId>gov.nsa.datawave.microservice</groupId>
<artifactId>type-utils</artifactId>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-geojson</artifactId>
</dependency>
<dependency>
<groupId>org.locationtech.jts</groupId>
<artifactId>jts-core</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>
<repository>
<!--
This repository is a temporary work-around until we can publish artifacts to maven central.
This allows us to retrieve released microservice artifacts from our github repository.
-->
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>datawave-github-mvn-repo</id>
<url>https://raw.githubusercontent.com/NationalSecurityAgency/datawave/mvn-repo</url>
</repository>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>osgeo-release</id>
<name>Open Source Geospatial Foundation Repository</name>
<url>https://repo.osgeo.org/repository/release/</url>
</repository>
</repositories>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package datawave.microservice.map.data;

public abstract class AbstractGeoTerms {
private String type;

public AbstractGeoTerms(String type) {
this.type = type;
}

public String getType() {
return type;
}
}
39 changes: 39 additions & 0 deletions api/src/main/java/datawave/microservice/map/data/GeoFeature.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package datawave.microservice.map.data;

import org.geotools.feature.FeatureCollection;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

import datawave.microservice.map.data.serialization.FeatureCollectionDeserializer;
import datawave.microservice.map.data.serialization.FeatureCollectionSerializer;

public class GeoFeature {
private String wkt;
@JsonSerialize(using = FeatureCollectionSerializer.class)
@JsonDeserialize(using = FeatureCollectionDeserializer.class)
private FeatureCollection geoJson;

public GeoFeature() {}

public GeoFeature(String wkt, FeatureCollection geoJson) {
this.wkt = wkt;
this.geoJson = geoJson;
}

public String getWkt() {
return wkt;
}

public void setWkt(String wkt) {
this.wkt = wkt;
}

public FeatureCollection getGeoJson() {
return geoJson;
}

public void setGeoJson(FeatureCollection geoJson) {
this.geoJson = geoJson;
}
}
24 changes: 24 additions & 0 deletions api/src/main/java/datawave/microservice/map/data/GeoFeatures.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package datawave.microservice.map.data;

public class GeoFeatures {

private GeoFeature geometry;

private AbstractGeoTerms queryRanges;

public GeoFeature getGeometry() {
return geometry;
}

public void setGeometry(GeoFeature geometry) {
this.geometry = geometry;
}

public AbstractGeoTerms getQueryRanges() {
return queryRanges;
}

public void setQueryRanges(AbstractGeoTerms queryRanges) {
this.queryRanges = queryRanges;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package datawave.microservice.map.data;

import java.util.Set;

import org.opengis.feature.simple.SimpleFeature;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;

import datawave.microservice.map.data.serialization.FeatureDeserializer;
import datawave.microservice.map.data.serialization.FeatureSerializer;

public class GeoFunctionFeature {
private String function;
private Set<String> fields;
@JsonSerialize(using = FeatureSerializer.class)
@JsonDeserialize(using = FeatureDeserializer.class)
private SimpleFeature geoJson;

public GeoFunctionFeature() {}

public GeoFunctionFeature(String function, Set<String> fields, SimpleFeature geoJson) {
this.function = function;
this.fields = fields;
this.geoJson = geoJson;
}

public String getFunction() {
return function;
}

public void setFunction(String function) {
this.function = function;
}

public Set<String> getFields() {
return fields;
}

public void setFields(Set<String> fields) {
this.fields = fields;
}

public SimpleFeature getGeoJson() {
return geoJson;
}

public void setGeoJson(SimpleFeature geoJson) {
this.geoJson = geoJson;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package datawave.microservice.map.data;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class GeoQueryFeatures {
private List<GeoFunctionFeature> geoFunctions;
private Map<String,AbstractGeoTerms> geoByField;

public GeoQueryFeatures() {
geoFunctions = new ArrayList<>();
geoByField = new HashMap<>();
}

public GeoQueryFeatures(List<GeoFunctionFeature> geoFunctions, Map<String,AbstractGeoTerms> geoByField) {
this.geoFunctions = geoFunctions;
this.geoByField = geoByField;
}

public List<GeoFunctionFeature> getFunctions() {
return geoFunctions;
}

public void setFunctions(List<GeoFunctionFeature> geoFunctions) {
this.geoFunctions = geoFunctions;
}

public Map<String,AbstractGeoTerms> getGeoByField() {
return geoByField;
}

public void setGeoByField(Map<String,AbstractGeoTerms> geoByField) {
this.geoByField = geoByField;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package datawave.microservice.map.data.geo;

import datawave.microservice.map.data.AbstractGeoTerms;
import datawave.microservice.map.data.GeoFeature;

public class GeoPointTerms extends AbstractGeoTerms {
// terms and ranges are encoded as features in the geojson
private GeoFeature geo;

public GeoPointTerms(String type) {
super(type);
}

public GeoPointTerms(GeoFeature geo) {
super("Geo Point");
this.geo = geo;
}

public GeoFeature getGeo() {
return geo;
}

public void setGeo(GeoFeature geo) {
this.geo = geo;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package datawave.microservice.map.data.geowave;

import java.util.Map;

import datawave.microservice.map.data.AbstractGeoTerms;
import datawave.microservice.map.data.GeoFeature;

public class GeoWaveGeometryTerms extends AbstractGeoTerms {
// terms and ranges are encoded as features in the geojson
private Map<Integer,GeoFeature> geoByTier;

public GeoWaveGeometryTerms(String type) {
super(type);
}

public GeoWaveGeometryTerms(Map<Integer,GeoFeature> geoByTier) {
super("GeoWave Geometry");
this.geoByTier = geoByTier;
}

public Map<Integer,GeoFeature> getGeoByTier() {
return geoByTier;
}

public void setGeoByTier(Map<Integer,GeoFeature> geoByTier) {
this.geoByTier = geoByTier;
}
}
Loading
Loading