Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

geogle

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

geogle

  • 0.3.5
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Geogle

Ruby wrapper for the Geocoding and Directions services provided from the Google Maps API.

wercker status Gem Version Code Climate

Installation

Add this line to your application's Gemfile:

gem 'geogle'

And then execute:

$ bundle

Or install it yourself as:

$ gem install geogle

Usage

Geocoding

Google geocoding documentation: https://developers.google.com/maps/documentation/geocoding/

Setting parameters

When creating the Geogle::Geocoder these are the setting parameters:

  • sensor:

    • true
    • false (default)
  • language: ar, eu, bg, bn, ca, cs, da, de, el, en, en-AU, en-GB, es, eu, fa, fi, fil, fr, gl, gu, hi, hr, hu, id, it, iw, ja, kn, ko, lt, lv, ml, mr, nl, no, pl, pt, pt-BR, pt-PT, ro, ru, sk, sl, sr, sv, tl, ta, te, th, tr, uk, vi, zh-CN, zh-TW

  • raw:

    • true: returns the raw json that comes in the body from the response.
    • false (default): returns the object created with auxiliar funtions.
  • client_id (required for business API): ID of the client. It starts with "gme-" prefix.

  • crypto_key (required for business API): Criptographic key.

Here's more information about Google Maps API for Business: https://developers.google.com/maps/documentation/business/webservices

Data model

Both methods return an array of Geogle::Model::Place. Each place is composed by:

  • Coordinates:

    • lat: Float
    • lng: Float
  • Area:

    • northeast: Coordinates
    • southwest: Coordinates
  • Geometry:

    • location: Coordinates
    • location_type: String
    • bounds: Area
    • viewport: Area
  • address:

    • street_number: String
    • street: String
    • locality: String
    • area_level_1: String
    • area_level_1_code: String
    • area_level_2: String
    • area_level_2_code: String
    • country: String
    • country_code: String
    • formatted: String

By address without an account

client = Geogle::Geocoder.new({ sensor: false, language: "es" })
client.address("Blasco Ibañez, Valencia")

By address making use of the components

client = Geogle::Geocoder.new({ sensor: false, language: "es" })
components = { country: 'ES' }
client.address("Blasco Ibañez, Valencia", components)

Available components to be used can be found here: https://developers.google.com/maps/documentation/geocoding/#ComponentFiltering

Reverse geocoding (by latitude and longitude)

Geogle::Geocoder.new.latlng(39.5073225, -0.2914778)

Using a business account

client = Geogle::Geocoder.new({ client_id: "gme-client-id", crypto_key: "crypto-key" })
client.latlng(39.5073225, -0.2914778)

The signature required to do the request will be appended in the URL.

Directions

Google directions documentation: https://developers.google.com/maps/documentation/directions/

Setting parameters

The same as with Geocode.

Options

  • mode: supporterd modes of transport (bicycling|walking|driving).
  • waypoints: specifies an array of waypoints to alter a route by routing it through the specified location.
  • alternatives: if true returns more than one route.
  • avoid:
    • tolls: the route should avoid toll roads/bridges.
    • highways: the route should avoid highways,
  • units:
    • metric: usage of metric system, returning distances in meters and kilometers.
    • imperial: usage of imperial system (British), returning distances in miles and feet.
  • region: the code of the country to search in.
Data model

Return an array of Geogle::Model::Route. Each route is composed by:

  • Time:

    • value: Integer
    • text: String
    • time_zone: String
  • TextValue:

    • value: Integer
    • text: String
  • Leg:

    • steps: Step
    • distance: TextValue
    • duration: TextValue
    • arrival_time: Time
    • departure_time: Time
    • start_address: String
    • end_address: String
    • start_location: Coordinates
    • end_location: Coordinates
  • Route:

    • summary: String
    • legs: Array[Leg]
    • waypoint_order: Array[Integer]
    • bounds: Area
    • copyrights: String
    • warnings: Array[String]

Search using address names for origin and destination

options = { region: "de", mode: "driving" }
client = Geogle::Directions.new
client.routes("Berlin", "Munich", options)

Search using geo-locations for origin and destination

client = Geogle::Directions.new
client.routes("39.4699889,-0.3759178", "40.4167158,-3.7037799")

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

FAQs

Package last updated on 14 Oct 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc