Simple geospatial index API using different backends
Standalone application is available per implementation. Each is configured to initialize the required container during startup. This is good if you don't want to manually run the docker image locally. However, the data will be lost when the application is shutdown.
RedisGeoIndexApplication
- RedisPostgisGeoIndexApplication
- PostGISElasticsearchGeoIndexApplication
- Elasticsearch
If you prefer to save the state of the data on each application run, the base Spring Application GeoIndexApplication
can still be used by activating the desired implementation using profiles.
- Index a GeoJSON Feature object
- Search for geometric objects within a certain distance
The implementation is tested on the API level regardless of the underlying backend.
The base test ApiIntegrationTest
is inherited by different test classes to activate the implementation to be tested.
RedisIntegrationTest
- activating theredis
profile and starting the Redis containerPostgisIntegrationTest
- activating thepostgis
profile and starting the PostGIS containerElasticsearchIntegrationTest
- activating theelasticsearch
profile and starting an Elasticsearch container
Geospatial indexing app with different backends using Spring Boot and Testcontainers