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, Google Bigtable 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 working group of the Eclipse Foundation.
- Main documentation
- Quick Starts: Accumulo | Kafka | HBase
- Tutorials
Current release: 1.3.1
Accumulo | Kafka 0.8 | Kafka 0.9 | Kafka 0.10 | HBase | Cassandra | Source
Development version: 1.3.2-SNAPSHOT
To upgrade between minor releases of GeoMesa, the versions of all GeoMesa components must match.
This means that the version of the geomesa-accumulo-distributed-runtime
JAR installed on Accumulo
tablet servers must match the version of the geomesa-accumulo-gs-plugin
JAR installed in the WEB-INF/lib
directory of GeoServer.
GeoMesa artifacts are published to the LocationTech Maven repository. To include GeoMesa in your project, add the following repositories to your pom:
<repositories>
<repository>
<id>locationtech-releases</id>
<url>https://repo.locationtech.org/content/groups/releases</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>boundlessgeo</id>
<url>https://repo.boundlessgeo.com/main</url>
</repository>
<repository>
<id>osgeo</id>
<url>http://download.osgeo.org/webdav/geotools</url>
</repository>
<repository>
<id>conjars.org</id>
<url>http://conjars.org/repo</url>
</repository>
</repositories>
For snapshot integrations use:
<repository>
<id>geomesa-snapshots</id>
<url>https://repo.locationtech.org/content/repositories/geomesa-snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
and then include the desired geomesa-*
dependencies:
<dependency>
<groupId>org.locationtech.geomesa</groupId>
<artifactId>geomesa-utils_2.11</artifactId>
<version>1.3.1</version>
</dependency>
...
Similarly, integration with sbt
is straightforward:
// Add necessary resolvers
resolvers ++= Seq(
"locationtech-releases" at "https://repo.locationtech.org/content/groups/releases",
"boundlessgeo" at "https://repo.boundlessgeo.com/main",
"osgeo" at "http://download.osgeo.org/webdav/geotools",
"conjars.org" at "http://conjars.org/repo"
)
// Select desired modules
libraryDependencies ++= Seq(
"org.locationtech.geomesa" %% "geomesa-utils" % "1.3.1",
...
)
Requirements:
- git
- Java JDK 8
- Apache Maven 3.2.2 or later
Use git to download the source code. Navigate to the destination directory, then run:
git clone [email protected]:locationtech/geomesa.git
cd geomesa
The project is managed by Maven. To build, run:
mvn clean install
Alternatively, the build/mvn
script is a wrapper around Maven that builds the project using the
Zinc incremental compiler, which can significantly decrease build times:
build/mvn clean install
GeoMesa uses Scala 2.11 by default. To build for Scala 2.10, run:
build/change-scala-version.sh 2.10
This will update the project poms to publish artifacts with a _2.10
suffix. Then build normally using maven.