Google Maps API – detect when crossing state lines and calculate distance travelled in each state

google-maps-api-3

I am using google maps api to calculate the number of miles my company's vehicles travel in each state over a period of time. For trips taken over the period, the user will create routes on the map, and the program should be able to generate some output like: 'Maryland: 100 miles, Virginia: 500 miles", etc.

I'm pretty sure I can do it by sending a DirectionsService request and iterating over the response.routes[i].legs[i].steps[i].path array, but unfortunately this requires sending Geocoder requests on thousands of LatLngs, which quickly puts me over my quota. Is there a better way to go about this? I really only need to detect when the route crosses a state line and break it into separate routes, but I don't know how I would do that without iterating over the path array.

Best Answer

If you have 1000 elements in your path array and you are binary searching (instead of iterating), it should only take 12 calls to LatLng to determine where the path crosses the border.

What sort of feedback do you get when you go over quota? If it's an exception return, you could always do the 3.5 second wait only when you receive the quota pushback.