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

gmaps_directions

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

gmaps_directions

  • 0.2.2
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

= gmaps_directions

Sometimes you need to calculate the directions between two different points via Google Maps on your server-side and not on the client. The Google Maps API for that is dead simple and due to this I wrapped calling the API in this little gem.

The gem talks to the Google Maps Directions Web Service API. Detailed documentation for that can be found here[http://code.google.com/apis/maps/documentation/directions] This API allows up to 2.500 direction requests. At the current version there is no way to use the non-public interface for Google Premium Maps customers. If you want that feature right now drop me a patch or wait until I need it too (which might not take too long anyway).

One last thing for the interested: The gem consumes the JSON response format from Google API and parses it through the Ruby Yajl JSON parser.

== Example

Here is an example of how to use the Gem. As you can see, it is really more than simple:

require 'rubygems'
require 'gmaps_directions'

routes = GmapsDirections::API.find_directions :from => "1 Infinite Loop, Cupertino",
                                             :to => "1200 Park Avenue, Emmerville"
route = routes.first

route.duration.should           == 3482
route.formatted_duration.should == "58 mins"
route.distance.should           == 84827
route.formatted_distance.should == "84.8 km"
route.start_address.should      == "1 Infinite Loop, Cupertino, CA 95014, USA"
route.end_address.should        == "1200 Park Ave, Emeryville, CA 94608, USA"
route.start_location.should     == { "lng" => -122.03125, "lat" => 37.3317 }
route.end_location.should       == { "lat" => 37.8317100, "lng" => -122.2833000 }
route.status.should             == "OK"

== Configuration

Despite the fact that you cannot provide an API-Key I already built some kind of configuration. In detail you can configure the following options when talking to Google:

  • The type of transportation to use when calculate the direction ('driving', 'walking', 'bicycling')
  • The unit system to use ('metric', 'imperial')
  • The language in which the results is outputted (this includes number formats)
  • The availability of a GPS-sensor
  • Should there alternative routes be calculated

The following snippet shows how to configure those options and what are the defaults:

GmapsDirections::Config.mode         = :driving
GmapsDirections::Config.units        = :metric
GmapsDirections::Config.language     = :en
GmapsDirections::Config.sensor       = false
GmapsDirections::Config.alternatives = false

== Contributing to gmaps_directions

  • Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
  • Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
  • Fork the project
  • Start a feature/bugfix branch
  • Commit and push until you are happy with your contribution
  • Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
  • Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.

== Copyright

Copyright (c) 2011 Dirk Breuer. See LICENSE.txt for further details.

FAQs

Package last updated on 12 Sep 2011

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