c# - 无法使用谷歌通过反向地理编码检索街道、城市和国家/地区对于澳大利亚地址

标签 c# google-maps

我确实需要从给定地址中提取街道名称、邮政编码、城市、州、国家、纬度和经度

它适用于印度地址,当我尝试澳大利亚地址时,它无法检索街道名称和邮政编码,其余的东西都可以从 JSON 数组中的地址组件检索约束

我使用了谷歌开发者论坛中引用的以下代码

public void FrmGoogleGeoCode(string frmAddress)
{
        string addUrl = "http://maps.google.com/maps/api/geocode/json?address='" + frmAddress + "'&sensor=false";
      var result = new System.Net.WebClient().DownloadString(addUrl);
      GoogleGeoCodeResponse test = JsonConvert.DeserializeObject<GoogleGeoCodeResponse>(result);
      var response = test.results.First();  
}

在 var 结果中,我得到了地址组件和格式化地址的 JSON 数组 从地址组件中,我需要从澳大利亚地址中检索街道名称、城市、州、邮政编码和国家/地区

请解封此问题

提前致谢

最佳答案

感谢您的回复,我尝试了相同的地址,即 300 George Street, Sydney NSW 2000, Australia 但回复是地址中没有元素

frmAddress ="300 George Street, Sydney NSW 2000, Australia";

这是我的以下代码,用于检索街道名称、城市、郊区、国家/地区、邮政编码

        string addUrl = "http://maps.google.com/maps/api/geocode/json?address='" + frmAddress + "'&sensor=false";
      var result = new System.Net.WebClient().DownloadString(addUrl);
      GoogleGeoCodeResponse test = JsonConvert.DeserializeObject<GoogleGeoCodeResponse>(result);
      var response = test.results.First();
      string route=null;
      string locality=null;
      string pstlCode = null;
      for (int i = 0; i < response.address_components.Count(); i++)
      {
          int j = 0;
          var components = response.address_components[i];
          string type = components.types[j].ToString();
          if (type == "route")
          {
              route = response.address_components[i].long_name.ToString();

          }
          if (type == "locality")
          {
           locality = response.address_components[i].long_name.ToString();
          }
          if (type == "postal_code")
          {
           pstlCode = response.address_components[i].long_name.ToString();
          }
      }
      frmLocation = route +","+locality +","+ pstlCode;

然后我用这段代码尝试了 George Street, Sydney, NSW,2000, Australia。

这是以下回应。请你能不能只发布代码,这样它会对我有很大帮助。

{ "results" : [ {"address_components" : [
            {
               "long_name" : "George Street",
               "short_name" : "George Street",
               "types" : [ "colloquial_area", "political" ]
            },
            {
               "long_name" : "New South Wales",
               "short_name" : "NSW",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "Australia",
               "short_name" : "AU",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "George Street, NSW, Australia",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : -33.9134399,
                  "lng" : 151.1667177
               },
               "southwest" : {
                  "lat" : -34.0059442,
                  "lng" : 151.0332033
               }
            },
            "location" : {
               "lat" : -33.9547504,
               "lng" : 151.1053691
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : -33.9134399,
                  "lng" : 151.1667177
               },
               "southwest" : {
                  "lat" : -34.0059442,
                  "lng" : 151.0332033
               }
            }
         },
         "partial_match" : true,
         "types" : [ "colloquial_area", "political" ]
      }
   ],
   "status" : "OK"
}

关于c# - 无法使用谷歌通过反向地理编码检索街道、城市和国家/地区对于澳大利亚地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18181725/

相关文章:

c# - .NET N 层架构 : What do I do about the Model objects?

c# - 如何在Asp.net core 2.0中使用log4net

c# - 在 Asp.net 中显示加载消息

google-maps - 如何从谷歌地图中提取中转站位置?

ios - 适用于 iOS 的可调整大小的 GMSCircle GoogleMaps SDK

android - Google map 未在 Firebase 测试实验室中显示

javascript - 谷歌地图在 IE7 中不工作

使用 wkhtmltopdf 或任何其他免费工具的 C# html 到 pdf 转换器

托管 C++ 中的 C# 方法

php - 半径/最近的结果 - Google Maps API