亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從這個 google 地方 API 地址結果中提取地址片段的最佳方法是什么?

從這個 google 地方 API 地址結果中提取地址片段的最佳方法是什么?

慕少森 2022-01-07 19:04:12
這可能是一個簡單的 JSON 相關問題。我成功地從 Google Places API 接收到一個 JSON 對象,它看起來與 Google Places API 文檔中的這個示例完全一樣。我需要將每個地址組件(街道號碼、城市、州、郵編等)分配給我的代碼中的單獨變量。例如,我如何最好地參考 street_number ?這是我現在的做法,但它不起作用,因為例如,如果我的地址沒有“樓層”,那么我將不得不引用address_components[0]而不是address_components[1]. 這是我現在無法使用的方式:const MyStreetNumber =  details.address_components[1].long_nameconsole.log(MyStreetNumber) //logs 48這是“詳細信息”的定義(我從 Google Places API 收到的響應):  {   "html_attributions" : [],   "result" : {      "address_components" : [         {            "long_name" : "5",            "short_name" : "5",            "types" : [ "floor" ]         },         {            "long_name" : "48",            "short_name" : "48",            "types" : [ "street_number" ]         },         {            "long_name" : "Pirrama Road",            "short_name" : "Pirrama Rd",            "types" : [ "route" ]         },         {            "long_name" : "Pyrmont",            "short_name" : "Pyrmont",            "types" : [ "locality", "political" ]         },         {            "long_name" : "Council of the City of Sydney",            "short_name" : "Sydney",            "types" : [ "administrative_area_level_2", "political" ]         },         {            "long_name" : "New South Wales",            "short_name" : "NSW",            "types" : [ "administrative_area_level_1", "political" ]         },         {            "long_name" : "Australia",            "short_name" : "AU",            "types" : [ "country", "political" ]         },         {            "long_name" : "2009",            "short_name" : "2009",            "types" : [ "postal_code" ]         }      ],   
查看完整描述

3 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

有點晚了,但如果它對任何人都有幫助,可以這樣做:


如果您只需要第一個結果


function handleGooglePlacesPress = results => {

  const map = {

    street_number: 'streetNumber',

    route: 'streetName',

    sublocality_level_1: 'city',

    locality: 'city1',

    administrative_area_level_1: 'state',

    postal_code: 'postalCode',

    country: 'country'

  };

  const brokenDownAddress = {};

  results[0].address_components.forEach(component => {

    brokenDownAddress[map[component.types[0]]] = component.long_name;

  }

  return brokenDownAddress;

}


查看完整回答
反對 回復 2022-01-07
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

您可以使用 for 循環并檢查types值,這是一個簡單的示例:


var add_comps = json['result']['address_components'];

for (var i = 0; i < add_comps.length; i++) {

  if (add_comps[i]['types'] == 'street_number') {

    console.log(i);

  }

}


查看完整回答
反對 回復 2022-01-07
?
眼眸繁星

TA貢獻1873條經驗 獲得超9個贊

好的,所以我最終只是循環通過 details.address_components 來分配變量。我檢查了兩次城市,因為有時它被稱為“locality”,有時它被稱為“subLocality_level_1”,具體取決于我相信的國家:


function handleGooglePlacesPress(data,details){



 var StreetNumber = null;

 var StreetName = null;

 var City = null;

 var State = null;

 var Country = null;

 var PostalCode = null;


  const addressComponents = details.address_components;


  addressComponents.forEach(addressComponent => { 


      const addressType = addressComponent.types[0]


      if(addressType == 'street_number'){

        StreetNumber = addressComponent.long_name;

      }


      if(addressType == 'route'){

        StreetName = addressComponent.long_name;

      }


      if(addressType == 'sublocality_level_1'){

        City = addressComponent.long_name;

      }

      if(addressType == 'locality'){

        City = addressComponent.long_name;

      }


      if(addressType == 'administrative_area_level_1'){

        State = addressComponent.long_name

      }


      if(addressType == 'postal_code'){

        PostalCode = addressComponent.long_name

      }


      if(addressType == 'country'){

        Country = addressComponent.long_name

      }



  });



console.log(StreetNumber,StreetName,City,State,PostalCode,Country) //logs each address piece



查看完整回答
反對 回復 2022-01-07
  • 3 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號