Mapping with S2 in JRuby

Indexing the surface of the earth with Google’s S2 library

By Sidu Ponnappa

S2 is Google’s Hilbert curve based spatial indexing library that’s generally awesome, and of incredible use to us when working with maps. It’s available in Java, C++ and Golang.

(António Miguel de Campos / Wiki Commons)

We do some work in JRuby that depends on this, so we’ve repackaged the Java version as a gem for JRuby.

gojek-engineering/s2-geometry-library-jruby
JRuby gem wrapping Google’s S2 Library. Contribute to gojek-engineering/s2-geometry-library-jruby development by creating an account on GitHub.
$ gem install s2geometry-jar

or via bundler

gem 's2geometry-jar', require: 'S2Geometry'

and off you go:

require "S2Geometry"
module Demo
  import 'com.google.common.geometry'
  
  a = S2LatLng.from_degrees(-6.2, 106.816667)
  b = S2LatLng.from_degrees(-6.1, 106.816667)
  puts a.getEarthDistance(b)
end