C#-如何使用C#查找经纬度我在C#中有一个WCF服务。在服务调用客户端中发送城市名称。我想将城市名称转换为经纬度并存储在人口统计数据下的数据库中。我打算使用GoogleAPI来实现上述功能。我从谷歌那里得到了一个API密钥和他们的“服务帐户”类型。如何使用哪些API获取经纬度?我需要安装一些SDK或任何REST服务吗?如果你想使用谷歌地图API来查看他们的RESTAPI,你不需要安装谷歌地图API来发送请求http://maps.googleapis.com/maps/api/geocode/xml?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true_or_false你会得到一个响应XML。有关详细信息,请查看https://developers.google.com/maps/documentation/geocoding/index#GeocodingRequests您可以尝试NuGet包GoogleMaps.LocationServices,或者只是旋转其源代码。它使用Google的RESTAPI获取给定地址的纬度/经度,反之亦然,无需API密钥。你可以这样使用它:publicstaticvoidMain(){varaddress="Stavanger,Norway";varlocationService=newGoogleLocationService();varpoint=locationService.GetLatLongFromAddress(地址);varlatitude=point.Latitude;varlongitude=point.Longitude;//Savelat/longvaluestoDB...}你可以在特定的url中传递地址..你在返回值dt(数据表)中得到经纬度以上是C#学习教程:C#–HowtouseC#查找经纬度共享的所有内容。如果对大家有用,需要了解更多C#学习教程,希望大家多多关注——stringurl="http://maps.google.com/maps/api/geocode/xml?address="+地址+"&sensor=false";WebRequest请求=WebRequest.Create(url);使用(WebResponseresponse=(HttpWebResponse)request.GetResponse()){使用(StreamReaderreader=newStreamReader(response.GetResponseStream(),Encoding.UTF8)){DataSetdsResult=newDataSet();dsResult.ReadXml(阅读器);DataTabledtCoordinates=newDataTable();dtCoordinates.Columns.AddRange(newDataColumn[4]{newDataColumn("Id",typeof(int)),newDataColumn("Address",typeof(string)),newDataaColumn("Latitude",typeof(string)),newDataColumn("Longitude",typeof(string))});foreach(dsResult.Tables["result"].Rows中的数据行行){stringgeometry_id=dsResult.Tables["geometry"].Select("result_id="+row["result_id"].ToString())[0]["geometry_id"].ToString();DataRowlocation=dsResult.Tables["location"].Select("geometry_id="+geometry_id)[0];dtCoordinates.Rows.Add(row["result_id"],row["formatted_address"],location["lat"],location["lng"]);}}返回dt坐标;}/*准备使用代码:简单复制粘贴GetLatLong*/publicclassAddressComponent{publicstringlong_name{get;放;}publicstringshort_name{get;放;}公共列表类型{get;放;}}publicclassNortheast{publicdoublelat{get;放;}publicdoublelng{get;放;}}publicclassSouthwest{publicdoublelat{get;放;}publicdoublelng{get;放;}}publicclassBounds{publicNortheastnortheast{get;放;}public西南southwest{得到;放;}}publicclassLocation{publicdoublelat{get;放;}publicdoublelng{get;放;}}publicclassNortheast2{publicdoublelat{get;放;}publicdoublelng{get;放;}}publicclassSouthwest2{publicdoublelat{get;放;}publicdoublelng{get;放;}}publicclassViewport{publicNortheast2northeast{get;放;}publicSouthwest2southwest{get;放;}}publicclassGeometry{publicBoundsbounds{get;放;}publicLocation位置{get;放;}publicstringlocation_type{得到;放;}publicViewport视口{get;放;}}publicclassResult{publicListaddress_components{get;放;}publicstringformatted_address{得到;放;}公共几何几何{得到;放;}publicstringplace_id{得到;放;}公共列表类型{get;放;}}publicclassRootObject{publicListresults{get;放;}公共字符串状态{得到;放;}}publicstaticRootObjectGetLatLongByAddress(字符串地址ess){varroot=newRootObject();varurl=string.Format("http://maps.googleapis.com/maps/api/geocode/json?address={0}&sensor=true_or_false",地址);varreq=(HttpWebRequest)WebRequest.Create(url);varres=(HttpWebResponse)req.GetResponse();使用(varstreamreader=newStreamReader(res.GetResponseStream())){varresult=streamreader.ReadToEnd();如果(!string.IsNullOrWhiteSpace(result)){root=JsonConvert.DeserializeObject(result);}}返回根;}/*调用这个*/vardestination_latLong=GetLatLongByAddress(um.RouteDestination);varlatitude=Convert.ToString(destination_latLong.results[0].geometry.location.lat,CultureInfo.InvariantCulture);varlongitude=Convert.ToString(destination_latLong.results[0].geometry.location.lng,CultureInfo.InvariantCulture);本文收集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除,如需转载请注明出处:
