sacar saber mis mapa longitud lector latitud geograficas definicion coordenadas con como buscar c# rest google-maps latitude-longitude

saber - Cómo encontrar latitud y longitud usando C#



lector de coordenadas (4)

Puede pasar la dirección en una url particular y obtendrá latitud y longitud en el valor de retorno dt (datatable)

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; }

Tengo un servicio WCF en C #.

En el cliente de llamada de servicio envía un nombre de ciudad. Quiero convertir el nombre de la ciudad a latitudes y longitudes y almacenar en Base de datos bajo datos demográficos.

Estoy planeando utilizar la API de Google para implementar la funcionalidad anterior.

Obtuve una clave API de Google y es de tipo ''Cuenta de servicio''.

¿Cómo puedo obtener la latitud y la longitud utilizando las API?

¿Necesito instalar algún SDK o algún servicio REST ?


Puede probar el paquete NuGet GoogleMaps.LocationServices , o simplemente girar su código fuente . Utiliza la API REST de Google para obtener lat / long para una dirección determinada y viceversa, sin la necesidad de una clave API.

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, simplemente 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ás una respuesta XML.

Para más información echar un vistazo a

https://developers.google.com/maps/documentation/geocoding/index#GeocodingRequests


/*Ready to use code : simple copy paste GetLatLong*/ public class AddressComponent { public string long_name { get; set; } public string short_name { get; set; } public List<string> types { get; set; } } public class Northeast { public double lat { get; set; } public double lng { get; set; } } public class Southwest { public double lat { get; set; } public double lng { get; set; } } public class Bounds { public Northeast northeast { get; set; } public Southwest southwest { get; set; } } public class Location { public double lat { get; set; } public double lng { get; set; } } public class Northeast2 { public double lat { get; set; } public double lng { get; set; } } public class Southwest2 { public double lat { get; set; } public double lng { get; set; } } public class Viewport { public Northeast2 northeast { get; set; } public Southwest2 southwest { get; set; } } public class Geometry { public Bounds bounds { get; set; } public Location location { get; set; } public string location_type { get; set; } public Viewport viewport { get; set; } } public class Result { public List<AddressComponent> address_components { get; set; } public string formatted_address { get; set; } public Geometry geometry { get; set; } public string place_id { get; set; } public List<string> types { get; set; } } public class RootObject { public List<Result> results { get; set; } public string status { get; set; } } public static RootObject GetLatLongByAddress(string address) { var root = new RootObject(); var url = string.Format( "http://maps.googleapis.com/maps/api/geocode/json?address={0}&sensor=true_or_false", address); var req = (HttpWebRequest)WebRequest.Create(url); var res = (HttpWebResponse)req.GetResponse(); using (var streamreader=new StreamReader(res.GetResponseStream())) { var result = streamreader.ReadToEnd(); if (!string.IsNullOrWhiteSpace(result)) { root = JsonConvert.DeserializeObject<RootObject>(result); } } return root; } /* Call This*/ var destination_latLong = GetLatLongByAddress(um.RouteDestination); var lattitude =Convert.ToString( destination_latLong.results[0].geometry.location.lat, CultureInfo.InvariantCulture); var longitude=Convert.ToString( destination_latLong.results[0].geometry.location.lng, CultureInfo.InvariantCulture);