Después de investigar con especialistas en esta materia, programadores de diversas ramas y profesores dimos con la solución al dilema y la dejamos plasmada en esta publicación.
Solución:
Puede probar el paquete NuGet GoogleMaps.LocationServices, o simplemente girar su código fuente. Utiliza la API REST de Google para obtener la latitud/longitud de una dirección determinada y viceversa, sin necesidad de una API. key.
Lo usas así:
public static void Main()
var address = "Stavanger, Norway";
var locationService = new GoogleLocationService();
var point = locationService.GetLatLongFromAddress(address);
var latitude = point.Latitude;
var longitude = point.Longitude;
// Save lat/long values to DB...
Si desea utilizar la API de Google Maps, eche un vistazo a su API REST, no necesita instalar una API de Google Maps, solo envíe una solicitud como
http://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false
y obtendrá un XML de respuesta.
Para la respuesta JSON:
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Estância+Sergipe,&key=**YOUR_API_KEY**
Para más información echa un vistazo a
https://developers.google.com/maps/documentation/geocoding/index#GeocodingRequests
Puede pasar la dirección en una URL particular … y obtiene la latitud y la longitud en el valor de retorno dt (tabla de datos)
string url = "http://maps.google.com/maps/api/geocode/xml?address=" + address+ "&sensor=false";
WebRequest request = WebRequest.Create(url);
using (WebResponse response = (HttpWebResponse)request.GetResponse())
using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
DataSet dsResult = new DataSet();
dsResult.ReadXml(reader);
DataTable dtCoordinates = new DataTable();
dtCoordinates.Columns.AddRange(new DataColumn[4] new DataColumn("Id", typeof(int)),
new DataColumn("Address", typeof(string)),
new DataColumn("Latitude",typeof(string)),
new DataColumn("Longitude",typeof(string)) );
foreach (DataRow row in dsResult.Tables["result"].Rows)
string geometry_id = dsResult.Tables["geometry"].Select("result_id = " + row["result_id"].ToString())[0]["geometry_id"].ToString();
DataRow location = dsResult.Tables["location"].Select("geometry_id = " + geometry_id)[0];
dtCoordinates.Rows.Add(row["result_id"], row["formatted_address"], location["lat"], location["lng"]);
return dtCoordinates;
Si guardas algún reparo y capacidad de prosperar nuestro artículo te recordamos añadir una crítica y con deseo lo analizaremos.