# LocationTech GeoMesa
**Repository Path**: mirrors/geomesa
## Basic Information
- **Project Name**: LocationTech GeoMesa
- **Description**: GeoMesa is a suite of tools for working with big geo-spatial data in a distributed fashion.
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 2
- **Created**: 2019-10-22
- **Last Updated**: 2025-09-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
GeoMesa is an open source suite of tools that enables large-scale geospatial querying and analytics on distributed
computing systems. GeoMesa provides spatio-temporal indexing on top of the Accumulo, HBase and
Cassandra databases for massive storage of point, line, and polygon data. GeoMesa also provides near real time
stream processing of spatio-temporal data by layering spatial semantics on top of Apache Kafka. Through GeoServer,
GeoMesa facilitates integration with a wide range of existing mapping clients over standard OGC (Open Geospatial
Consortium) APIs and protocols such as WFS and WMS. GeoMesa supports Apache Spark for custom distributed
geospatial analytics.
####  GeoMesa is a member of the [LocationTech](https://projects.eclipse.org/projects/locationtech.geomesa) working group of the Eclipse Foundation.
## Join the Community
*
* GeoMesa [Users](https://accounts.eclipse.org/mailing-list/geomesa-users) and [Dev](https://accounts.eclipse.org/mailing-list/geomesa-dev) mailing lists
* GeoMesa [JIRA](https://geomesa.atlassian.net/issues/?jql=order+by+created+DESC) for issue tracking
## Documentation
* [Main documentation](https://www.geomesa.org/documentation/)
* [Upgrade Guide](https://www.geomesa.org/documentation/user/upgrade.html)
* Quick Starts:
[Accumulo](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-accumulo.html) |
[HBase](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-hbase.html) |
[Cassandra](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-cassandra.html) |
[Kafka](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-kafka.html) |
[Redis](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-redis.html) |
[FileSystem](https://www.geomesa.org/documentation/current/tutorials/geomesa-quickstart-fsds.html)
* [Tutorials](https://www.geomesa.org/tutorials/)
## Downloads
**Latest release: [5.3.0](https://github.com/locationtech/geomesa/releases/tag/geomesa-5.3.0)** -
[**Accumulo**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.3.0/geomesa-accumulo_2.12-5.3.0-bin.tar.gz) |
[**HBase**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.3.0/geomesa-hbase_2.12-5.3.0-bin.tar.gz) |
[**Cassandra**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.3.0/geomesa-cassandra_2.12-5.3.0-bin.tar.gz) |
[**Kafka**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.3.0/geomesa-kafka_2.12-5.3.0-bin.tar.gz) |
[**Redis**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.3.0/geomesa-redis_2.12-5.3.0-bin.tar.gz) |
[**FileSystem**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.3.0/geomesa-fs_2.12-5.3.0-bin.tar.gz) |
[**PostGIS**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.3.0/geomesa-gt_2.12-5.3.0-bin.tar.gz)
### Verifying Downloads
Downloads hosted on GitHub include SHA-256 hashes and gpg signatures (.asc files). To verify a download using gpg,
import the appropriate key:
```bash
gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys CD24F317
```
Then verify the file:
```bash
gpg2 --verify geomesa-accumulo_2.12-5.3.0-bin.tar.gz.asc geomesa-accumulo_2.12-5.3.0-bin.tar.gz
```
The keys currently used for signing are:
| Key ID | Name |
|------------|----------------------------------------------------|
| `CD24F317` | Emilio Lahr-Vivaz <elahrvivaz(-at-)ccri.com> |
| `1E679A56` | James Hughes <jnh5y(-at-)ccri.com> |
## Maven Integration
[](https://search.maven.org/search?q=g:org.locationtech.geomesa)
GeoMesa is hosted on Maven Central. To include it as a dependency, add the desired modules, for example:
```xml
org.locationtech.geomesa
geomesa-accumulo-datastore_2.12
5.3.0
```
GeoMesa provides a bill-of-materials module, which can simplify version management:
```xml
org.locationtech.geomesa
geomesa-bom_2.12
5.3.0
pom
import
```
GeoMesa depends on several third-party libraries that are only available in separate repositories. To include
GeoMesa in your project, add the following repositories to your pom:
```xml
osgeo
https://repo.osgeo.org/repository/release
confluent
https://packages.confluent.io/maven/
```
### Nightly Snapshots
Snapshot versions are published nightly to the Eclipse repository:
```xml
geomesa-snapshots
https://repo.eclipse.org/content/repositories/geomesa-snapshots
false
true
```
### Spark Runtimes
GeoMesa publishes `spark-runtime` JARs for integration with Spark environments like Databricks. These
shaded JARs include all the required dependencies in a single artifact. When importing through Maven, all
transitive dependencies can be excluded. There are Spark runtime JARs available for most of the different
DataStore implementations:
```xml
org.locationtech.geomesa
geomesa-gt-spark-runtime_2.12
5.3.0
*
*
```
These JARs are also included in the [Downloads](#downloads) bundles, above.
## `sbt` Integration
Similarly, integration with `sbt` is straightforward:
```scala
// Add necessary resolvers
resolvers ++= Seq(
"osgeo" at "https://repo.osgeo.org/repository/release",
"confluent" at "https://packages.confluent.io/maven"
)
// Select desired modules
libraryDependencies ++= Seq(
"org.locationtech.geomesa" %% "geomesa-utils" % "5.3.0"
)
```
## Building from Source
[](https://github.com/locationtech/geomesa/actions/workflows/main-build.yml?query=branch%3Amain)
[](https://api.securityscorecards.dev/projects/github.com/locationtech/geomesa)
Requirements:
* [Git](https://git-scm.com/)
* [Java JDK 11](https://adoptium.net/temurin/releases/)
* [Apache Maven](https://maven.apache.org/) 3.6.3 or later
* [Docker](https://docs.docker.com/get-docker/) (only required for running unit tests)
Use Git to download the source code. Navigate to the destination directory, then run:
```bash
git clone git@github.com:locationtech/geomesa.git
cd geomesa
```
The project is built using Maven. To build, run:
```bash
mvn clean install -DskipTests
```
The full build takes quite a while. To speed it up, you may use multiple threads (`-T 1.5C`).
To run unit tests, omit the `-DskipTests` (note: requires `docker` to be available).
### Build with Bloop Compile Server
GeoMesa also provides experimental support for the [Bloop](https://scalacenter.github.io/bloop/) compile server,
which provides fast incremental compilation. To export the GeoMesa build to Bloop, run:
```bash
./build/scripts/bloop-export.sh
```
For more information on using Bloop, refer to the
[Bloop documentation](https://scalacenter.github.io/bloop/docs/build-tools/maven).
### Build with Zinc Compile Server
GeoMesa also provides experimental support for the [Zinc](https://github.com/typesafehub/zinc) compile server,
which provides fast incremental compilation. However, please note that Zinc is no longer actively maintained.
To use an existing Zinc server, run maven with `-Pzinc`. GeoMesa provides a helper script at `build/mvn`, which
is a wrapper around Maven that downloads and runs Zinc automatically:
```bash
build/mvn clean install -T8 -DskipTests
```
If the Zinc build fails with an error finding "javac", try setting the JAVA_HOME
environment variable to point to the root of your JDK. Example from a Mac:
```bash
JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home" build/mvn clean install
```
### Scala Cross Build
To build for a different Scala version (e.g. 2.13), run the following script, then build as normal:
```bash
./build/scripts/change-scala-version.sh 2.13
```
### Building on OS X
When building on OS X and using Docker Desktop in a non-default configuration, you may need to edit `~/.testcontainers.properties` to contain the following:
```
docker.client.strategy=org.testcontainers.dockerclient.UnixSocketClientProviderStrategy
```