用google map实现周边搜索功能
項(xiàng)目要實(shí)現(xiàn)根據(jù)經(jīng)緯度獲取附近的建筑,由于項(xiàng)目在海外運(yùn)營(yíng),谷歌地圖首當(dāng)其沖。
首先說(shuō)明的是,該功能需要在服務(wù)端實(shí)現(xiàn),也就是安卓的SDK不適用。
api文檔地址:
https://developers.google.com/places/web-service/search#PlaceSearchResults
獲取秘鑰key的方法:
https://developers.google.com/places/web-service/get-api-key
api文檔地址打不開(kāi)怎么辦,我將文檔中的東西復(fù)制下來(lái)了,如下:
附近的搜索請(qǐng)求
默認(rèn)情況下,當(dāng)用戶(hù)選擇某個(gè)地點(diǎn)時(shí),“附近搜索”會(huì)返回所選地點(diǎn)的所有可用數(shù)據(jù)字段,您將收到相應(yīng)的結(jié)算費(fèi)用。沒(méi)有辦法將附近搜索請(qǐng)求限制為僅返回特定字段。要避免請(qǐng)求(并支付)您不需要的數(shù)據(jù),請(qǐng)改用 查找位置請(qǐng)求。
通過(guò)“附近搜索”,您可以搜索指定區(qū)域內(nèi)的位置。您可以通過(guò)提供關(guān)鍵字或指定要搜索的地點(diǎn)類(lèi)型來(lái)優(yōu)化搜索請(qǐng)求。
附近搜索請(qǐng)求是以下格式的HTTP URL:
https://maps.googleapis.com/maps/api/place/nearbysearch/output?parameters
其中 output可能是以下任一值:
json?(推薦)表示JavaScript Object Notation(JSON)中的輸出
xml?表示輸出為XML
啟動(dòng)“附近搜索”請(qǐng)求需要某些參數(shù)。作為URL中的標(biāo)準(zhǔn),所有參數(shù)都使用ampersand( &)字符分隔。
必需參數(shù)
key- 您的應(yīng)用程序的?API密鑰。此密鑰標(biāo)識(shí)您的應(yīng)用程序。有關(guān) 更多信息,請(qǐng)參閱?獲取密鑰。
location?- 檢索地點(diǎn)信息的緯度/經(jīng)度。必須將其指定為?緯度,經(jīng)度。
radius?- 定義返回位置結(jié)果的距離(以米為單位)。允許的最大半徑為50 000米。請(qǐng)注意,?radius如果指定?rankby=distance(在下面的可選參數(shù)下描述),則不得包括 。
如果?rankby=distance(在所描述的可選參數(shù)下面)被指定,那么一個(gè)或多個(gè)?keyword,?name或?type是必需的。
可選參數(shù)
keyword?- 與Google為此地點(diǎn)編入索引的所有內(nèi)容匹配的字詞,包括但不限于姓名,類(lèi)型和地址,以及客戶(hù)評(píng)論和其他第三方內(nèi)容。
language?- 語(yǔ)言代碼,如果可能,指示應(yīng)返回結(jié)果的語(yǔ)言。請(qǐng)參閱支持的語(yǔ)言?及其代碼列表。請(qǐng)注意,我們經(jīng)常更新支持的語(yǔ)言,因此此列表可能并非詳盡無(wú)遺。
minprice和?maxprice?(可選) - 僅將結(jié)果限制在指定范圍內(nèi)的那些位置。有效值的范圍介于0(最實(shí)惠)到4(最昂貴)之間。具體值表示的確切數(shù)量因地區(qū)而異。
name?- 與Google為此地點(diǎn)編入索引的所有內(nèi)容匹配的字詞。相當(dāng)于?keyword。該?name字段不再局限于地名。此字段中的值與?keyword字段中的值組合,并作為同一搜索字符串的一部分傳遞。我們建議僅對(duì)?keyword所有搜索詞使用 參數(shù)。
opennow?- 僅返回在發(fā)送查詢(xún)時(shí)為業(yè)務(wù)開(kāi)放的那些位置。如果在查詢(xún)中包含此參數(shù),則不會(huì)返回未在Google地方信息數(shù)據(jù)庫(kù)中指定營(yíng)業(yè)時(shí)間的地點(diǎn)。
rankby?- 指定列出結(jié)果的順序。請(qǐng)注意,?rankby如果指定了?radius?(在上面的必需參數(shù)中描述),則不得包括。可能的值是:
prominence(默認(rèn))。此選項(xiàng)根據(jù)結(jié)果的重要性對(duì)結(jié)果進(jìn)行排序。排名將有利于指定區(qū)域內(nèi)的顯著位置。地方在Google索引中的排名,全球受歡迎程度以及其他因素都會(huì)影響到突出程度。
distance。此選項(xiàng)按照與指定距離的距離按升序?qū)λ阉鹘Y(jié)果進(jìn)行偏差?location。當(dāng)?distance被指定時(shí),一個(gè)或多個(gè)?keyword,?name或?type是必需的。
type?- 將結(jié)果限制為與指定類(lèi)型匹配的位置。只能指定一種類(lèi)型(如果提供了多種類(lèi)型,則忽略第一個(gè)條目后面的所有類(lèi)型)。請(qǐng)參閱?支持的類(lèi)型列表。
pagetoken?- 返回先前運(yùn)行的搜索的后20個(gè)結(jié)果。設(shè)置?pagetoken參數(shù)將使用先前使用的相同參數(shù)執(zhí)行搜索 -?pagetoken將忽略除以外的所有參數(shù)。
Google Maps API Premium Plan客戶(hù)注意事項(xiàng):您必須在請(qǐng)求中包含API密鑰。你應(yīng)該不包括 client或 signature參數(shù)您的要求。
附近的搜索示例
以下示例是澳大利亞悉尼一個(gè)1500米半徑范圍內(nèi)“餐館”類(lèi)型的地點(diǎn)的搜索請(qǐng)求,其中包含“游輪”一詞:
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密鑰替換,以使請(qǐng)求在您的應(yīng)用程序中起作用。
JSON響應(yīng)最多包含四個(gè)根元素:
"status"包含請(qǐng)求的元數(shù)據(jù)。請(qǐng)參閱 下面的狀態(tài)代碼
"results"包含一系列地點(diǎn),包含每個(gè)地方的信息。有關(guān)這些結(jié)果的信息,請(qǐng)參見(jiàn)搜索結(jié)果?Places API?establishment?每個(gè)查詢(xún)最多返回20個(gè)結(jié)果。另外,?political可以返回結(jié)果,其用于識(shí)別請(qǐng)求的區(qū)域。
html_attributions?可能包含一組關(guān)于此列表的歸屬,必須向用戶(hù)顯示(某些列表可能沒(méi)有歸屬)。
next_page_token包含一個(gè)令牌,可用于返回最多20個(gè)附加結(jié)果。?next_page_token如果沒(méi)有要顯示的其他結(jié)果,則不會(huì)返回A. 可以返回的最大結(jié)果數(shù)為60.在?next_page_token發(fā)布a 和有效之間會(huì)有短暫的延遲。
狀態(tài)代碼
該 "status"搜索響應(yīng)對(duì)象中字段包含請(qǐng)求的狀態(tài),并且可能會(huì)包含調(diào)試信息,以幫助您跟蹤請(qǐng)求失敗的原因。該 "status"字段可能包含以下值:
OK表示沒(méi)有發(fā)生錯(cuò)誤; 成功檢測(cè)到該地點(diǎn),并返回至少一個(gè)結(jié)果。
ZERO_RESULTS表示搜索成功但未返回任何結(jié)果。如果搜索是?latlng在遠(yuǎn)程位置傳遞的,則可能會(huì)發(fā)生這種情況 。
OVER_QUERY_LIMIT?表示您已超過(guò)配額。
REQUEST_DENIED表示您的請(qǐng)求被拒絕,通常是因?yàn)槿鄙贌o(wú)效?key參數(shù)。
INVALID_REQUEST通常表示缺少必需的查詢(xún)參數(shù)(?location或?radius)。
UNKNOWN_ERROR表示服務(wù)器端錯(cuò)誤; 再試一次可能會(huì)成功。
錯(cuò)誤消息
當(dāng)Google商家信息服務(wù)返回其他狀態(tài)代碼時(shí) OK, error_message搜索響應(yīng)對(duì)象中可能還有一個(gè)附加字段。該字段包含有關(guān)給定狀態(tài)代碼背后原因的更多詳細(xì)信息。
訪問(wèn)其他結(jié)果
默認(rèn)情況下,每個(gè)附近搜索或文本搜索 establishment每個(gè)查詢(xún)最多返回20個(gè)結(jié)果; 但是,每個(gè)搜索可以返回多達(dá)60個(gè)結(jié)果,分為三個(gè)頁(yè)面。如果您的搜索返回超過(guò)20,那么搜索響應(yīng)將包含一個(gè)額外的值 - next_page_token。將值的值傳遞給新搜索 next_page_token的 pagetoken參數(shù)以查看下一組結(jié)果。如果 next_page_token為null,或者未返回,則沒(méi)有進(jìn)一步的結(jié)果。在 next_page_token發(fā)布a 和何時(shí)生效之間會(huì)有短暫的延遲 。在可用之前請(qǐng)求下一頁(yè)將返回 INVALID_REQUEST響應(yīng)。使用相同的方法重試請(qǐng)求 next_page_token將返回下一頁(yè)結(jié)果。
例如,在下面的查詢(xún)中,我們搜索澳大利亞悉尼達(dá)令港附近的餐館,并按距離對(duì)結(jié)果進(jìn)行排名。您可以看到響應(yīng)包含 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"
}
要查看下一組結(jié)果,您可以提交新查詢(xún),并將結(jié)果傳遞 next_page_token給 pagetoken 參數(shù)。例如:
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
設(shè)置 pagetoken將導(dǎo)致忽略任何其他參數(shù)。查詢(xún)將執(zhí)行與之前相同的搜索,但將返回一組新結(jié)果。您可以在原始查詢(xún)后最多兩次請(qǐng)求新頁(yè)面。必須依次顯示每頁(yè)結(jié)果。搜索結(jié)果的兩頁(yè)或多頁(yè)不應(yīng)作為單個(gè)查詢(xún)的結(jié)果顯示。請(qǐng)注意,每次搜索都會(huì)計(jì)入針對(duì)您的使用限制的單個(gè)請(qǐng)求。
但是,比較坑的一點(diǎn)是同一個(gè)key一天調(diào)用的次數(shù)最多150000次,如果用戶(hù)量較大時(shí),要專(zhuān)門(mén)交費(fèi)調(diào)整限制次數(shù) 。
代碼示例
pom依賴(lài)
<dependency>
<groupId>de.taimos</groupId>
<artifactId>httputils</artifactId>
<version>1.11</version>
</dependency>
測(cè)試方法
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 = "你申請(qǐng)的KEY";
public static void main(String[] args) {
HttpResponse response = null;
String resStr = null;
// 調(diào)用接口進(jìn)行請(qǐng)求地址數(shù)據(jù)
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);
/**
* 請(qǐng)求返回的數(shù)據(jù)中有nextPageToken字段不為空時(shí),就有多頁(yè)數(shù)據(jù),請(qǐng)求下一頁(yè)數(shù)據(jù)時(shí)需要將該字段攜帶去請(qǐng)求
* 查詢(xún)下一頁(yè)的內(nèi)容
*/
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);
/**
* 獲取某個(gè)地點(diǎn)對(duì)應(yīng)的照片。然后將得到的 url 復(fù)制到 瀏覽器中查看
* photoreference 這個(gè)值 是在上面的請(qǐng)求中得到的
*/
String photoreference = "CmRaAAAAdxvDbnaBSQO4MDseo-3SB_TZ4pd2c1EC765iu_Vu3-2XOA-LFgaZ6iiTY5sYCKxh_ZiQP0ds6qVDP4RAQn4Lxw6OEonSpgzzBBU0BrwrYMP91shZA1HIkaQVZaxKtYeqEhCKrYqwlzcV8dVs4Xv7AY2KGhRdpmMGa3n0S6d2n5cN6SckW49D6g";
resStr = String.format(PHOTO_URL, photoreference, KEY);
System.out.println("resStr3==" + resStr);
}
}
得到的返回結(jié)果為(有點(diǎn)長(zhǎng),省略了一部分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
總結(jié)
以上是生活随笔為你收集整理的用google map实现周边搜索功能的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: “职业丑人”:大公司雇“职业杀手”大裁员
- 下一篇: HRESULT: 0x80070057