如何使用 C# Winform 使谷歌地图坐标请求更精确/准确
本文关键字:准确 请求 坐标 何使用 Winform 谷歌地图 | 更新日期: 2023-09-27 18:31:50
我使用谷歌地图API构建一个winform 项目。 我发送一个地址,结果我得到了地址坐标。但是,我没有得到最准确的结果...这是我的代码:
using System.Net;
using System.Runtime.Serialization.Json;
namespace WinForm_Project
{
class GoogleMaps
{
public static GeoResponse GetGeoCodedResults(string address) and uses google maps to retrieve the address's coordinates.
{
string url = string.Format("http://maps.google.com/maps/api/geocode/json?address={0}®ion=dk&sensor=false",HttpUtility.UrlEncode(address));
var request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate");
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(GeoResponse));
var res = (GeoResponse)serializer.ReadObject(request.GetResponse().GetResponseStream());
return res;
}
}
}
这部分工作得很好。(需要明确的是 - 我的 winform 应用程序不包含谷歌地图)我注意到当我在谷歌地图的网站上输入地址时,我得到了某些坐标 - 但是当我放大时坐标(纬度、经度)变得更加准确......
有没有办法更改请求''代码以从谷歌获得更准确的结果? 如最大放大将显示在谷歌地图上。
谢谢
使用 Google 的 JSON 选项,您的结果将包含类似以下内容的内容。
...
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 40.91525559999999,
"lng" : -73.70027209999999
},
"southwest" : {
"lat" : 40.495908,
"lng" : -74.2590879
}
},
"location" : {
"lat" : 40.7143528,
"lng" : -74.00597309999999
...
确切的"点"将在结果(>几何)>位置下。 但是,如果您的查询是一个区域,例如纽约市,那么您将获得该区域的边界框(结果-->几何-->边界)。 如果是这种情况,给出的确切位置可能是该区域的中心或普遍接受的点。