加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 无法通过反向地理编码使用谷歌检索街道,城市和国家澳大利

发布时间:2020-12-15 21:54:50 所属栏目:百科 来源:网络整理
导读:我确实需要从给定地址中提取街道名称,邮政编码,城市,州,国家,纬度,经度 它适用于印度地址,当我尝试使用澳大利亚地址时,它无法检索街道名称和邮政编码其余的东西可以很好地从JSON数组中的地址组件中检索约束 我使用了以下代码,这些代码在Google开发人员论坛中
我确实需要从给定地址中提取街道名称,邮政编码,城市,州,国家,纬度,经度

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

我使用了以下代码,这些代码在Google开发人员论坛中引用

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数组
从地址组件我需要从澳大利亚地址检索街道名称,邮政编码和国家

请解除此问题的阻止

提前致谢

解决方法

感谢您的回复,我尝试了相同的地址,即澳大利亚悉尼新南威尔士州2000乔治街300号,但回复中的地址没有任何要素

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;

然后我用这段代码尝试了乔治街,悉尼,新南威尔士州,2000年,澳大利亚.

这是以下回复.请您发布代码,以便对我有所帮助.

{ "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",{
               "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.0332033
               }
            }
         },"partial_match" : true,"political" ]
      }
   ],"status" : "OK"
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读