用google map實現周邊搜索功能


項目要實現根據經緯度獲取附近的建築,由於項目在海外運營,谷歌地圖首當其沖。

首先說明的是,該功能需要在服務端實現,也就是安卓的SDK不適用。

api文檔地址:

https://developers.google.com/places/web-service/search#PlaceSearchResults

獲取秘鑰key的方法:

https://developers.google.com/places/web-service/get-api-key

api文檔地址打不開怎么辦,我將文檔中的東西復制下來了,如下:

附近的搜索請求

默認情況下,當用戶選擇某個地點時,“附近搜索”會返回所選地點的所有可用數據字段,您將收到相應的結算費用。沒有辦法將附近搜索請求限制為僅返回特定字段。要避免請求(並支付)您不需要的數據,請改用 查找位置請求

通過“附近搜索”,您可以搜索指定區域內的位置。您可以通過提供關鍵字或指定要搜索的地點類型來優化搜索請求。

附近搜索請求是以下格式的HTTP URL:

https://maps.googleapis.com/maps/api/place/nearbysearch/output?parameters

其中output可能是以下任一值:

  • json (推薦)表示JavaScript Object Notation(JSON)中的輸出

  • xml 表示輸出為XML

啟動“附近搜索”請求需要某些參數。作為URL中的標准,所有參數都使用ampersand(&)字符分隔。

必需參數

  • key- 您的應用程序的 API密鑰。此密鑰標識您的應用程序。有關 更多信息,請參閱 獲取密鑰

  • location - 檢索地點信息的緯度/經度。必須將其指定為 緯度經度

  • radius - 定義返回位置結果的距離(以米為單位)。允許的最大半徑為50 000米。請注意,radius如果指定rankby=distance(在下面的可選參數下描述),則不得包括 。

  • 如果rankby=distance(在所描述的可選參數下面)被指定,那么一個或多個 keywordnametype是必需的。

可選參數

  • keyword - 與Google為此地點編入索引的所有內容匹配的字詞,包括但不限於姓名,類型和地址,以及客戶評論和其他第三方內容。

  • language - 語言代碼,如果可能,指示應返回結果的語言。請參閱支持的語言 及其代碼列表。請注意,我們經常更新支持的語言,因此此列表可能並非詳盡無遺。

  • minpricemaxprice可選) - 僅將結果限制在指定范圍內的那些位置。有效值的范圍介於0(最實惠)到4(最昂貴)之間。具體值表示的確切數量因地區而異。

  • name - 與Google為此地點編入索引的所有內容匹配的字詞。相當於keyword。該 name字段不再局限於地名。此字段中的值與keyword字段中的值組合,並作為同一搜索字符串的一部分傳遞。我們建議僅對keyword所有搜索詞使用 參數。

  • opennow - 僅返回在發送查詢時為業務開放的那些位置。如果在查詢中包含此參數,則不會返回未在Google地方信息數據庫中指定營業時間的地點。

  • rankby - 指定列出結果的順序。請注意,rankby如果指定了radius (在上面的必需參數中描述),則不得包括。可能的值是:

    • prominence(默認)。此選項根據結果的重要性對結果進行排序。排名將有利於指定區域內的顯着位置。地方在Google索引中的排名,全球受歡迎程度以及其他因素都會影響到突出程度。

    • distance。此選項按照與指定距離的距離按升序對搜索結果進行偏差location。當 distance被指定時,一個或多個keywordnametype是必需的。

  • type - 將結果限制為與指定類型匹配的位置。只能指定一種類型(如果提供了多種類型,則忽略第一個條目后面的所有類型)。請參閱 支持的類型列表

  • pagetoken - 返回先前運行的搜索的后20個結果。設置pagetoken參數將使用先前使用的相同參數執行搜索 - pagetoken將忽略除以外的所有參數。

Google Maps API Premium Plan客戶注意事項:您必須在請求中包含API密鑰。你應該包括clientsignature參數您的要求。

附近的搜索示例

以下示例是澳大利亞悉尼一個1500米半徑范圍內“餐館”類型的地點的搜索請求,其中包含“游輪”一詞:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=1500&type=restaurant&keyword=cruise&key=YOUR_API_KEY

注意:在此示例中,您需要key 使用自己的API密鑰替換,以使請求在您的應用程序中起作用。

JSON響應最多包含四個根元素:

  • "status"包含請求的元數據。請參閱 下面的狀態代碼

  • "results"包含一系列地點,包含每個地方的信息。 有關這些結果的信息,請參見搜索結果 Places API establishment 每個查詢最多返回20個結果。另外,political可以返回結果,其用於識別請求的區域。

  • html_attributions 可能包含一組關於此列表的歸屬,必須向用戶顯示(某些列表可能沒有歸屬)。

  • next_page_token包含一個令牌,可用於返回最多20個附加結果。next_page_token如果沒有要顯示的其他結果,則不會返回A. 可以返回的最大結果數為60.在next_page_token發布a 和有效之間會有短暫的延遲。

狀態代碼

"status"搜索響應對象中字段包含請求的狀態,並且可能會包含調試信息,以幫助您跟蹤請求失敗的原因。該"status"字段可能包含以下值:

  • OK表示沒有發生錯誤; 成功檢測到該地點,並返回至少一個結果。

  • ZERO_RESULTS表示搜索成功但未返回任何結果。如果搜索是latlng在遠程位置傳遞的,則可能會發生這種情況 。

  • OVER_QUERY_LIMIT 表示您已超過配額。

  • REQUEST_DENIED表示您的請求被拒絕,通常是因為缺少無效key參數。

  • INVALID_REQUEST通常表示缺少必需的查詢參數(locationradius)。

  • UNKNOWN_ERROR表示服務器端錯誤; 再試一次可能會成功。

錯誤消息

當Google商家信息服務返回其他狀態代碼時 OKerror_message搜索響應對象中可能還有一個附加字段。該字段包含有關給定狀態代碼背后原因的更多詳細信息。

訪問其他結果

默認情況下,每個附近搜索或文本搜索establishment每個查詢最多返回20個結果; 但是,每個搜索可以返回多達60個結果,分為三個頁面。如果您的搜索返回超過20,那么搜索響應將包含一個額外的值 - next_page_token。將值的值傳遞給新搜索next_page_tokenpagetoken參數以查看下一組結果。如果 next_page_token為null,或者未返回,則沒有進一步的結果。在next_page_token發布a 和何時生效之間會有短暫的延遲 。在可用之前請求下一頁將返回INVALID_REQUEST響應。使用相同的方法重試請求 next_page_token將返回下一頁結果。

例如,在下面的查詢中,我們搜索澳大利亞悉尼達令港附近的餐館,並按距離對結果進行排名。您可以看到響應包含next_page_token屬性。

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&rankby=distance&type=food&key=YOUR_API_KEY

{
   "html_attributions" : [],
   "next_page_token" : "CpQCAgEAAFxg8o-eU7_uKn7Yqjana-HQIx1hr5BrT4zBaEko29ANsXtp9mrqN0yrKWhf-y2PUpHRLQb1GT-mtxNcXou8TwkXhi1Jbk-ReY7oulyuvKSQrw1lgJElggGlo0d6indiH1U-tDwquw4tU_UXoQ_sj8OBo8XBUuWjuuFShqmLMP-0W59Vr6CaXdLrF8M3wFR4dUUhSf5UC4QCLaOMVP92lyh0OdtF_m_9Dt7lz-Wniod9zDrHeDsz_by570K3jL1VuDKTl_U1cJ0mzz_zDHGfOUf7VU1kVIs1WnM9SGvnm8YZURLTtMLMWx8-doGUE56Af_VfKjGDYW361OOIj9GmkyCFtaoCmTMIr5kgyeUSnB-IEhDlzujVrV6O9Mt7N4DagR6RGhT3g1viYLS4kO5YindU6dm3GIof1Q",
   "results" : [
      {
         "geometry" : {
            "location" : {
               "lat" : -33.867217,
               "lng" : 151.195939
            }
         },
         "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/cafe-71.png",
         "id" : "7eaf747a3f6dc078868cd65efc8d3bc62fff77d7",
         "name" : "Biaggio Cafe - Pyrmont",
         "opening_hours" : {
            "open_now" : true
         },
         "photos" : [
            {
               "height" : 600,
               "html_attributions" : [],
               "photo_reference" : "CnRnAAAAmWmj0BqA0Jorm1_vjAvx1n6c7ZNBxyY-U9x99-oNyOxvMjDlo2npJzyIq7c3EK1YyoNXdMFDcRPzwLJtBzXAwCUFDGo_RtLRGBPJTA2CoerPdC5yvT2SjfDwH4bFf5MrznB0_YWa4Y2Qo7ABtAxgeBIQv46sGBwVNJQDI36Wd3PFYBoUTlVXa0wn-zRITjGp0zLEBh8oIBE",
               "width" : 900
            }
         ],
         "place_id" : "ChIJIfBAsjeuEmsRdgu9Pl1Ps48",
         "scope" : "GOOGLE",
         "price_level" : 1,
         "rating" : 3.4,
         "reference" : "CoQBeAAAAGu0wNJjuZ40DMrRe3mpn7fhlfIK1mf_ce5hgkhfM79u-lqy0G2mnmcueTq2JGWu9wsgS1ctZDHTY_pcqFFJyQNV2P-kdhoRIeYRHeDfbWtIwr3RgFf2zzFBXHgNjSq-PSzX_OU6OT2_3dzdhhpV-bPezomtrarW4DsGl9uh773yEhDJT6R3V8Fyvl_xeE761DTCGhT1jJ3floFI5_c-bHgGLVwH1g-cbQ",
         "types" : [ "cafe", "bar", "restaurant", "food", "establishment" ],
         "vicinity" : "48 Pirrama Rd, Pyrmont"
      },
      {
         "geometry" : {
            "location" : {
               "lat" : -33.866786,
               "lng" : 151.195633
            }
         },
         "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",
         "id" : "3ef986cd56bb3408bc1cf394f3dad9657c1d30f6",
         "name" : "Doltone House",
         "photos" : [
            {
               "height" : 1260,
               "html_attributions" : [ "From a Google User" ],
               "photo_reference" : "CnRwAAAAeM-aLqAm573T44qnNe8bGMkr_BOh1MOVQaA9CCggqtTwuGD1rjsviMyueX_G4-mabgH41Vpr8L27sh-VfZZ8TNCI4FyBiGk0P4fPxjb5Z1LrBZScYzM1glRxR-YjeHd2PWVEqB9cKZB349QqQveJLRIQYKq2PNlOM0toJocR5b_oYRoUYIipdBjMfdUyJN4MZUmhCsTMQwg",
               "width" : 1890
            }
         ],
         "place_id" : "ChIJ5xQ7szeuEmsRs6Kj7YFZE9k",
         "scope" : "GOOGLE",
         "reference" : "CnRvAAAA22k1PAGyDxAgHZk6ErHh_h_mLUK_8XNFLvixPJHXRbCzg-gw1ZxdqUwA_8EseDuEZKolBs82orIQH4m6-afDZV9VcpggokHD9x7HdMi9TnJDmGb9Bdh8f-Od4DK0fASNBL7Me3CsAWkUMWhlNQNYExIQ05W7VbxDTQe2Kh9TiL840hoUZfiO0q2HgDHSUyRdvTQx5Rs2SBU",
         "types" : [ "food", "establishment" ],
         "vicinity" : "48 Pirrama Rd, Pyrmont"
      },
      {
         "aspects" : [
            {
               "rating" : 23,
               "type" : "overall"
            }
         ],
      ...
   ],
   "status" : "OK"
}

要查看下一組結果,您可以提交新查詢,並將結果傳遞next_page_tokenpagetoken 參數。例如:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?pagetoken=CpQCAgEAAFxg8o-eU7_uKn7Yqjana-HQIx1hr5BrT4zBaEko29ANsXtp9mrqN0yrKWhf-y2PUpHRLQb1GT-mtxNcXou8TwkXhi1Jbk-ReY7oulyuvKSQrw1lgJElggGlo0d6indiH1U-tDwquw4tU_UXoQ_sj8OBo8XBUuWjuuFShqmLMP-0W59Vr6CaXdLrF8M3wFR4dUUhSf5UC4QCLaOMVP92lyh0OdtF_m_9Dt7lz-Wniod9zDrHeDsz_by570K3jL1VuDKTl_U1cJ0mzz_zDHGfOUf7VU1kVIs1WnM9SGvnm8YZURLTtMLMWx8-doGUE56Af_VfKjGDYW361OOIj9GmkyCFtaoCmTMIr5kgyeUSnB-IEhDlzujVrV6O9Mt7N4DagR6RGhT3g1viYLS4kO5YindU6dm3GIof1Q&key=YOUR_API_KEY

設置pagetoken將導致忽略任何其他參數。查詢將執行與之前相同的搜索,但將返回一組新結果。您可以在原始查詢后最多兩次請求新頁面。必須依次顯示每頁結果。搜索結果的兩頁或多頁不應作為單個查詢的結果顯示。請注意,每次搜索都會計入針對您的使用限制的單個請求。

但是,比較坑的一點是同一個key一天調用的次數最多150000次,如果用戶量較大時,要專門交費調整限制次數 。

代碼示例

pom依賴

<dependency>
    <groupId>de.taimos</groupId>
    <artifactId>httputils</artifactId>
    <version>1.11</version>
</dependency>

測試方法

import de.taimos.httputils.WS;
import org.apache.http.HttpResponse;
​
/**
 * @author: xbq
 * @date: 2019/2/13 10:47
 * @description: 
 */
public class GoogleMap {
​
    public static final String NEARBY_SEARCH_URL = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=%s&radius=%s&key=%s";
    public static final String NEXT_PAGE_URL = "https://maps.googleapis.com/maps/api/place/nearbysearch/json?pagetoken=%s&key=%s";
    public static final String PHOTO_URL = "https://maps.googleapis.com/maps/api/place/photo?maxwidth=480&photoreference=%s&key=%s";
​
    // 秘鑰
    public static final String KEY = "你申請的KEY";
​
    public static void main(String[] args) {
​
        HttpResponse response = null;
        String resStr = null;
​
        // 調用接口進行請求地址數據
        String location = "-33.8670522,151.1957362";
        String radius = "1500";
​
        response = WS.url(String.format(NEARBY_SEARCH_URL, location, radius, KEY)).get();
        resStr = WS.getResponseAsString(response);
        System.out.println("resStr==" + resStr);
​
        /**
         * 請求返回的數據中有nextPageToken字段不為空時,就有多頁數據,請求下一頁數據時需要將該字段攜帶去請求
         * 查詢下一頁的內容
         */
        String nextPageToken = "CoQE_QEAAK74QaEIfb5nG5Zfjuk0Dk2zRojKXhXr1-XhgzEY8xJrwPDvWTs82dGJuQ9JNIERxYWjadPeP-XwPqiKMWbuUpRw0vYfp7xwoj7YOhoYyF9yXwREjhKiRT_F-gaBJnvG_6FqqPbql6f4vBlzclrgu5pjSh4rUFgyU_lpHSRKSHmDaoSvVFynQe7G29-xRT54QXq35_dzIYRVEiHGhv-8qX2b8R_G237_dHIaZr5LpXbLWA7Y6j_78USKHy1t0Mpa2kKLK-bjmYlPniyX-CMocX_KwfQJplnrpLet-4vZiXo9HaPP_jaVOm6HSj-O3vdsra0Dn1fFBIt10kBpt0j1LuQlShjT2ivDgS1UjhiwGqtXRvj_iAN1SKWYuV2CXMqAFg4lkHCtfcPF0H_YUiHYiVup-xQI0cnBtbVmVR7VlvJs3S98H0hhuVyfNfp0b7KoFqwbDaw6Cfc3ohxRD-pnn5ZAfqcKFbuEYyqsHbiUAdtaFIgF07hQTNk-cswO0zaw8jQofrAkS_GjR4QCL1HY2mvWnl1g6fpi4yR28n5O6jRbtcs6MSxILh2QJhZBttmHkKYGDr218971kvmPWL9gcS981xfSNPxEjzd6IcCUrgh4ObV19OLr1JUgigqH2mD2g1JcEmgvX5SQuxIhDOQKnFPuF4AEYFO7Y58ZjTls4GTTEhBTOpSDTtIN1OYtspW9OjpXGhSVH5BjnBGwuG5HYPf-SERJMC1Pkg";
        response = WS.url(String.format(NEXT_PAGE_URL, nextPageToken, KEY)).get();
        resStr = WS.getResponseAsString(response);
        System.out.println("resStr2==" + resStr);
​
        /**
         * 獲取某個地點對應的照片。然后將得到的 url 復制到 瀏覽器中查看
         * photoreference 這個值 是在上面的請求中得到的
         */
        String photoreference = "CmRaAAAAdxvDbnaBSQO4MDseo-3SB_TZ4pd2c1EC765iu_Vu3-2XOA-LFgaZ6iiTY5sYCKxh_ZiQP0ds6qVDP4RAQn4Lxw6OEonSpgzzBBU0BrwrYMP91shZA1HIkaQVZaxKtYeqEhCKrYqwlzcV8dVs4Xv7AY2KGhRdpmMGa3n0S6d2n5cN6SckW49D6g";
        resStr = String.format(PHOTO_URL, photoreference, KEY);
        System.out.println("resStr3==" + resStr);
    }
}

得到的返回結果為(有點長,省略了一部分json。。需要什么值 直接解析下面的JSON即可):

resStr=={
   "html_attributions" : [],
   "next_page_token" : "CoQE_QEAAFOBxJ8gWNrKkExgSbivQYAd46cKlMl8LNTu-ZIx8y3JmpiYhh5dqi3m9sUUwxcQ-MH7eKUgfljdH4RSlU1ExLyzw0vhfvYwfOfdmnbnIHz9xPM1hh5vBgYW2xn85NDRHNYjvB7uGTKoT3w7J5ZIy0pGCesQMjb3ritCHMT-y24DazvRsMEYgsyHk5H7TZWi6169xPyPgKi5uH5wSBpAB0zZdbuGGUY9979sVzRor32JEx6K-hkH6nfo8b1-gIrXBg_YASS81wkkHlqhMj04RDROXBpe_5Y9s4DMqGZNJuAem1Y3O0aEspDI-tT-swpUUYpe3Nvve9seDO7tqkwPWaAGMKGynt5ZlF0GSUXcEao-6dKuvRE0RaiOpdwNTNvGN7kYu6ACfAmDPnXmmIGoo-kdLhzxB4YVXgFYzHiaRIGE6Agj5kCoZ2HNaq-WHQWxx3CquyRV6bb77O_L-rds48ukOVYZ2QkhmfaJAfHGeGF0AyuPcUSip9PkjztzVzRw0oT7m3cASeTyWhci6e97h4chEKhddAc2xAqYZQ-hC8G4uyjp6L0uO_9ENEKYRRFRYWTtYtlpC_mn_xwyr76WN_IjYIyQDci2fFa9y12sPa3fow0W0FOlACfUc-RmU7f_ml1gRAYzyAQIHbDBYxYSS3dhuGDSIBnZfC3Upgh_O51jEhCkXggwwuSE1-t2CtLV_CotGhRCej6bWUC0D4ObssTvgnosi2LDHA",
   "results" : [
      {
         "geometry" : {
            "location" : {
               "lat" : -33.8688197,
               "lng" : 151.2092955
            },
            "viewport" : {
               "northeast" : {
                  "lat" : -33.5781409,
                  "lng" : 151.3430209
               },
               "southwest" : {
                  "lat" : -34.118347,
                  "lng" : 150.5209286
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png",
         "id" : "044785c67d3ee62545861361f8173af6c02f4fae",
         "name" : "Sydney",
         "photos" : [
            {
               "height" : 1536,
               "html_attributions" : [
                  "\u003ca href=\"https://maps.google.com/maps/contrib/115027288387975928704/photos\"\u003eAlan Chen\u003c/a\u003e"
               ],
               "photo_reference" : "CmRaAAAA2CmGfo6miJRR93a5XHlI8CUC8ms65rFBpvc5S6UZaKDffZkd3ACtDfnmemKl-AiCeYtev2l3-e8TSVK79B12jINbfk7pzmydQv2auPDTzCqpuGaFqSnwmn6wbzolzZcfEhBcKU3f6uUEPh6gtA3qlq_ZGhS3kXjaoHny1qtBO7YcDcIUmryV-g",
               "width" : 2300
            }
         ],
         "place_id" : "ChIJP3Sa8ziYEmsRUKgyFmh9AQM",
         "reference" : "ChIJP3Sa8ziYEmsRUKgyFmh9AQM",
         "scope" : "GOOGLE",
         "types" : [ "colloquial_area", "locality", "political" ],
         "vicinity" : "Sydney"
      }
   ],
   "status" : "OK"
}
​
​
resStr2=={
   "html_attributions" : [],
   "next_page_token" : "CqQFnQIAACwVVBaTf9R5PKhw3tFgSYiobH1a7xJR4sAj8tMXbjdPG8iyUafylxU9Ve1LsQncixVCFUprcYeSpjPzpk1JMCHRzPcEQ0UkJsSSt4Gnmwbqn2sJ6EnUywGul-rVN9tg2No3KGx3ezIBc8ITnogFZAxXCkfGsP6ty4y4wC1Zqc4d4JjYD-P_JIwlSQmO5kjCKLfrnMzbAIaQrYWcUVnqcbtYdxiv41u7UL3zaEly7wDEK4d0kGnOriD1GCFD5Drl9KnGeNJ5kdCT3tiUduNQMioiU5XkKrb8DYLpEfBmCpgqCxL2_AKssad-WBGGu_OU5yIz1NOqi1g78q_-R7JF3rfKo2ZQ2KF8XV3vOrhoK_Y6699-kZ7XQI0ztxoRTUTssiBnpjBRhkDWI-IACrj9FwPyogE0qCB0BEDyuXUk05tR9GqSoLy56JLMSimFVCiUSHz2dXnStHl7Sg-wia562jQacFgjq_w1_wJmHvYr-QRwKt-YPCZuS5x7Fo7dzz5qJniulQ_FB5UwVVw-DHuXF5KJJ0x8uFLbiCm-9B4q7XjF3Y8rTX94tnpfR9ow92GTXL1GHnQZRC67cQqEZG7w5OSHnsyv0rbagM-DYfBfB4dxP1CBrXvZxVs713Eh3kwNqfSJaBZDkOJKzF-ObMuVfTLL3giugfx1knM4j_--0e_117MzeC4skxQRV6Q67kQqpf3lDQmMPUZX87BULX6Lx394G6DBQYf2XUwPGrRF9c_CckUo2_OOg5KbdAUQqlfTE0-Wk6l8b4njzJ8_BluMHMZLwGqa_SllxEsY_4F8vMRw-ml_6gsc_lapkrh9MylaPD7FeHioTEDKPB_UcJ5O67pNDRfyFee1jW2MHyfAev-3RpyT18kgk_QVNQhkjsO9NBIQh41tRo68GtQhXHfxlx1MJxoUcP_2zUJbBnv0cKwt44vWPiTWo4A",
   "results" : [
      {
         "geometry" : {
            "location" : {
               "lat" : -33.86536760000001,
               "lng" : 151.2090887
            },
            "viewport" : {
               "northeast" : {
                  "lat" : -33.86401861970851,
                  "lng" : 151.2104376802915
               },
               "southwest" : {
                  "lat" : -33.8667165802915,
                  "lng" : 151.2077397197085
               }
            }
         },
         "icon" : "https://maps.gstatic.com/mapfiles/place_api/icons/lodging-71.png",
         "id" : "7966e287de7b33958cd5fac4bdcab4c3c8a7cf75",
         "name" : "Radisson Blu Plaza Hotel Sydney",
         "opening_hours" : {
            "open_now" : true
         },
         "photos" : [
            {
               "height" : 1243,
               "html_attributions" : [
                  "\u003ca href=\"https://maps.google.com/maps/contrib/113323939240497973930/photos\"\u003eRadisson Blu Plaza Hotel Sydney\u003c/a\u003e"
               ],
               "photo_reference" : "CmRaAAAAGqGsjVf5XLDhg0WDZJHoo6K2GD6145vEVOOPL6oRSYJOTnQ7IB7xg_HR7VAx5Txkv_xdKRg9X5qJ9dHluAXV-eMifF4oqizMSnzjSw62OzCBLySWJmVw-SpievEfp-GrEhAfho_Cnggh1UjsWhaW1l1SGhQccEY-CZKWsXSuZFifHGWttUyKpA",
               "width" : 1244
            }
         ],
         "place_id" : "ChIJI6ovxEGuEmsRAdcebtTwTrU",
         "plus_code" : {
            "compound_code" : "46M5+VH Sydney, New South Wales, Australia",
            "global_code" : "4RRH46M5+VH"
         },
         "rating" : 4.5,
         "reference" : "ChIJI6ovxEGuEmsRAdcebtTwTrU",
         "scope" : "GOOGLE",
         "types" : [ "lodging", "point_of_interest", "establishment" ],
         "user_ratings_total" : 1080,
         "vicinity" : "27 O'Connell Street, Sydney"
      }
   ],
   "status" : "OK"
}
​
resStr3==https://maps.googleapis.com/maps/api/place/photo?maxwidth=480&photoreference=CmRaAAAAdxvDbnaBSQO4MDseo-3SB_TZ4pd2c1EC765iu_Vu3-2XOA-LFgaZ6iiTY5sYCKxh_ZiQP0ds6qVDP4RAQn4Lxw6OEonSpgzzBBU0BrwrYMP91shZA1HIkaQVZaxKtYeqEhCKrYqwlzcV8dVs4Xv7AY2KGhRdpmMGa3n0S6d2n5cN6SckW49D6g&key=AIzaSyD-M2PDsTZaEP28taVQD9wysAJLyZxkUDM
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM