Module: RGeo::GeoJSON

Defined in:
lib/rgeo/geo_json.rb,
lib/rgeo/geo_json/coder.rb,
lib/rgeo/geo_json/version.rb,
lib/rgeo/geo_json/entities.rb,
lib/rgeo/geo_json/interface.rb

Overview

This is a namespace for a set of tools that provide GeoJSON encoding. See geojson.org/ for more information about this specification.

Defined Under Namespace

Classes: Coder, EntityFactory, Feature, FeatureCollection

Constant Summary collapse

VERSION =
'0.3.1'.freeze

Class Method Summary collapse

Class Method Details

.coder(opts_ = {}) ⇒ Object

Creates and returns a coder object of type RGeo::GeoJSON::Coder that encapsulates encoding and decoding settings (principally the RGeo::Feature::Factory and the RGeo::GeoJSON::EntityFactory to be used).

The geo factory is a required argument. Other options include:

:geo_factory

Specifies the geo factory to use to create geometry objects. Defaults to the preferred cartesian factory.

:entity_factory

Specifies an entity factory, which lets you override the types of GeoJSON entities that are created. It defaults to the default RGeo::GeoJSON::EntityFactory, which generates objects of type RGeo::GeoJSON::Feature or RGeo::GeoJSON::FeatureCollection. See RGeo::GeoJSON::EntityFactory for more information.

:json_parser

Specifies a JSON parser to use when decoding a String or IO object. The value may be a Proc object taking the string as the sole argument and returning the JSON hash, or it may be one of the special values :json, :yajl, or :active_support. Setting one of those special values will require the corresponding library to be available. Note that the :json library is present in the standard library in Ruby 1.9, but requires the “json” gem in Ruby 1.8. If a parser is not specified, then the decode method will not accept a String or IO object; it will require a Hash.


84
85
86
# File 'lib/rgeo/geo_json/interface.rb', line 84

def coder(opts_={})
  Coder.new(opts_)
end

.decode(input_, opts_ = {}) ⇒ Object

High-level convenience routine for decoding an object from GeoJSON. The input may be a JSON hash, a String, or an IO object from which to read the JSON string.

Options include:

:geo_factory

Specifies the geo factory to use to create geometry objects. Defaults to the preferred cartesian factory.

:entity_factory

Specifies an entity factory, which lets you override the types of GeoJSON entities that are created. It defaults to the default RGeo::GeoJSON::EntityFactory, which generates objects of type RGeo::GeoJSON::Feature or RGeo::GeoJSON::FeatureCollection. See RGeo::GeoJSON::EntityFactory for more information.

:json_parser

Specifies a JSON parser to use when decoding a String or IO object. The value may be a Proc object taking the string as the sole argument and returning the JSON hash, or it may be one of the special values :json, :yajl, or :active_support. Setting one of those special values will require the corresponding library to be available. Note that the :json library is present in the standard library in Ruby 1.9, but requires the “json” gem in Ruby 1.8. If a parser is not specified, then the decode method will not accept a String or IO object; it will require a Hash.


51
52
53
# File 'lib/rgeo/geo_json/interface.rb', line 51

def decode(input_, opts_={})
  Coder.new(opts_).decode(input_)
end

.encode(object_, opts_ = {}) ⇒ Object

High-level convenience routine for encoding an object as GeoJSON. Pass the object, which may one of the geometry objects specified in RGeo::Feature, or an appropriate GeoJSON wrapper entity such as RGeo::GeoJSON::Feature or RGeo::GeoJSON::FeatureCollection.

The only option supported is :entity_factory, which lets you override the types of GeoJSON entities supported. See RGeo::GeoJSON::EntityFactory for more information. By default, encode supports objects of type RGeo::GeoJSON::Feature and RGeo::GeoJSON::FeatureCollection.


19
20
21
# File 'lib/rgeo/geo_json/interface.rb', line 19

def encode(object_, opts_={})
  Coder.new(opts_).encode(object_)
end