LocationTech SFCurve is a Scala library for the creation, transformation, and querying of space-filling curves
Scala Shell
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
api
benchmarks
hilbert
project
zorder
.gitignore
.travis.yml
CONTRIBUTING.md
CONTRIBUTORS.txt
LICENSE
README.md
built.sbt
sbt

README.md

SFCurve

Join the chat at https://gitter.im/locationtech/sfcurve

sfcurve-space-diagram

What is SFCurve?

This library represents a collaborative attempt to create a solid, robust and modular library for dealing with space filling curves on the JVM.

To read up on the collaborative effort to define the interface, and to participate in the discussion, see Issue #3.

Where can I learn more about the project?

A more detailed account of the origin and intention can be found in the proposal of the SFCurve project submitted to LocationTech. You can also find more information by contacting any of the current collaborators, or by asking about it on the GeoTrellis, GeoMesa, or GeoWave mailing lists.

Can I use SFCurve now?

This library is a complete work in progress, and is NOT recommended for current use. In the future, though, we hope to be the definitive library for working with space filling curves on the JVM. If you have ideas on how to get us there, please participate!

Working with SFCurve

The build tool used in this project is sbt. A script is included that will download the necessary sbt software, so you do not need sbt installed on the machine to work with this project.

To drop into the sbt console, where you can execute various commands, simply type

> ./sbt

in your shell.

In the below examples >, bechmarks > etc. represents the sbt console prompt.

Once in the sbt console, to compile the code, issue the command:

> compile

To test the code:

> test

To start a scala console which has the core sfcurve code in the classpath:

> console

To run the benchmarks, drop into the benchmark subproject using the project command, and run:

> project benchmarks
benchmarks > run

Publishing snapshot binaries

If you run the publish-local sbt command, the subproject artifacts will be published to the local ivy2 cache.

If you run the publish sbt command, the subproject artifacts will be published to the local maven2 repository.

This will publish artifacts for the latest scala version. If you want other scala versions, you can add a + in front of the command to do cross-version commands. So +publish-local will publish scala 2.10 and 2.11 artifacts to the local ivy2 cache.

Showing the dependency graph

Run dependencyGraph in the subproject sbt console.