Overpass API Ruby CircleCI

A Ruby wrapper for OpenStreetMap Overpass API. Supports both QL and XML.

Note: Version 0.2 introduces breaking changes. Check the file CHANGELOG.md.

Install

gem install overpass-api-ruby

or add gem 'overpass-api-ruby' to your Gemfile

Usage

Using XML:

require 'overpass_api_ruby'

options={:bbox => {:s => -34.705448, :n => -34.526562,
                   :w => -58.531471, :e => -58.335159},
         :timeout => 900,
         :element_limit => 1073741824}

overpass = OverpassAPI::XML.new(options)

query = "<union><query type='relation'><has-kv k='route' v='subway'/></query>" <<
        "</union><union><item/><recurse type='down'/></union>"

response = overpass.query(query)

Using QL:

require 'overpass_api_ruby'

options={:bbox => {:s => -34.705448, :n => -34.526562,
                   :w => -58.531471, :e => -58.335159},
         :timeout => 900,
         :maxsize => 1073741824}

overpass = OverpassAPI::QL.new(options)

query = "rel['route'='subway'];(._;>;);out body;"

response = overpass.query(query)

Common options on instantiation

bbox                    Hash. Global bounding box.
endpoint                String.
                        Defaults to http://overpass-api.de/api/interpreter
timeout                 Integer.

Specific options on instantiation

QL

maxsize                 Integer.

XML

element_limit           Integer.

See Overpass API

Public methods

Both QL and XML classes have the same public methods:

query (<String query>)      Performs the query passed using the global values set on instantiation.

raw_query (<String query>)  The whole query must be passed.

buid_query (<String query>) Returns a String containing the whole query.

bounding_box (s,n,w,e)      Defines the global bounding box.

Test

Run rake spec

License

MIT.