0

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

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

谢谢

4

1 回答 1

0

使用 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
...

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

于 2013-09-17T16:02:44.260 回答