如何使用 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}&region=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 应用程序不包含谷歌地图)我注意到当我在谷歌地图的网站上输入地址时,我得到了某些坐标 - 但是当我放大时坐标(纬度、经度)变得更加准确......

有没有办法更改请求''代码以从谷歌获得更准确的结果? 如最大放大将显示在谷歌地图上。

谢谢

如何使用 C# 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
...

确切的"点"将在结果(>几何)>位置下。 但是,如果您的查询是一个区域,例如纽约市,那么您将获得该区域的边界框(结果-->几何-->边界)。 如果是这种情况,给出的确切位置可能是该区域的中心或普遍接受的点。