module S2Geometry #:nodoc: S2Cell.class_eval do # Build a S2Cell instance at leaf node level (30) # from a decimal latitude and longitude pair def self.build_from_lat_long(latitude, longitude) self.new( com.google.common.geometry.S2CellId.from_lat_lng( com.google.common.geometry.S2LatLng.from_degrees(latitude, longitude) ) ) end # Build a S2Cell instance from a 64 bit long def self.build_from_long_id(long_id) self.new(com.google.common.geometry.S2CellId.new(long_id)) end # 64bit S2Id as a long def long_id self.id.id end def parent(level = nil) parent_id = level ? self.id.parent(level) : self.id.parent self.class.new(parent_id) end end end