Google Maps API Implementation in C#
Google Maps probably doesn't need an introduction, but just in case, it is a mapping system from Google. It has a bunch of APIs to choose from. Just like with the other API implementations on here, I made a client for Google Maps as well.
I use Google Maps as a fallback if I can't get an accurate result out of Geocod.io at my work. As with the other clients, you need to pass in an instance of an HttpClient
as well as your API key to a new instance of GoogleMapsClient
.
Since I did release this as a NuGet package, I did fully implement the different APIs I wanted to integrate. The client currently implements the Distance Matrix, Elevation, Geocode, and TimeZone APIs. I don't do request validation within the client and instead defer to the responses to indicate if there's any errors. I am thinking about implementing validation in the future, just haven't settled on how to do it, and currently work is keeping me quite busy in real life.
Here's how to use the client. For a short example of the client in use, please take a peek at the linked video above.
var googleMaps = new GoogleMapsClient(
httpClient,
"{key}"
);
Get Geocode
var geocode = await googleMaps.GetGeocodeAsync(
"1600 Pennsylvania Ave NW, Washington, DC 20500"
);
Get Reverse Geocoding
var reverseGeocode = await googleMaps.GetReverseGeocodeAsync(
"38.897675,-77.036547"
);
Get Elevation
var elevation = await googleMaps.GetElevationAsync(
"38.897675,-77.036547"
);
Get Time Zone
var timeZone = await googleMaps.GetTimeZoneAsync(
"38.897675,-77.036547"
);
Get Distance Matrix
var distanceMatrix = await googleMaps.GetDistanceMatrixAsync(
"East Capitol St NE & First St SE, Washington, DC 20004",
"1600 Pennsylvania Ave NW, Washington, DC 20500"
);