mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-27 21:06:49 +00:00
23 lines
849 B
CoffeeScript
23 lines
849 B
CoffeeScript
Darkswarm.service "Geo", ->
|
|
new class Geo
|
|
OK: google.maps.GeocoderStatus.OK
|
|
|
|
# Usage:
|
|
# Geo.geocode address, (results, status) ->
|
|
# if status == Geo.OK
|
|
# console.log results[0].geometry.location
|
|
# else
|
|
# console.log "Error: #{status}"
|
|
geocode: (address, callback) ->
|
|
geocoder = new google.maps.Geocoder()
|
|
geocoder.geocode {'address': address, 'region': "<%= Spree::Country.find_by_id(Spree::Config[:default_country_id]).iso %>"}, callback
|
|
|
|
distanceBetween: (src, dst) ->
|
|
google.maps.geometry.spherical.computeDistanceBetween @toLatLng(src), @toLatLng(dst)
|
|
|
|
# Wrap an object in a google.maps.LatLng if it has not been already
|
|
toLatLng: (locatable) ->
|
|
if locatable.lat?
|
|
locatable
|
|
else
|
|
new google.maps.LatLng locatable.latitude, locatable.longitude |