Closed rcschafer closed 12 years ago
looking stuff up. Need to use localStorage with this so the service is not just constantly getting hammered
Good idea, store the lat/lng of the address the user entered. I guess we still have to hit the DistanceMatrix service once for every provider so you can rank the search results correctly but we can cache those too.
We could do a quick-and-dirty approach that calculates the actual distance between the clinic and the provided address; this wouldn't involve the Google DistanceMatrix service so we'd only need to do a single geocoding call. There's some formulas for calculating this distance here.
I'll get this implemented by wednesday. I was actually browsing the google api and the distance matrix takes textual addresses as parameters, there is no need to geolocate anything at all!
If an address is entered for a search rank results by distance. Distance can be obtained via the GMaps V3 Geocoding and Distance Matrix APIs.
gmaps.js contains an initial implementation of
get_distance(origin_address, destination_address)
but the GMaps calls are asynchronous so we'll have to implement a version that takes a callback method so the main GUI can 'wait' for values to return before sorting and presenting the results.The provider (destination) addresses are known so we can geocode them in advance and add the lat/lng to the JSON data to minimize calls to the GMaps API.