自定義Google map autocomplete

使用地圖服務(wù)會有搜索地點的需求, 在使用Google map基于Google map自帶的Place Autocomplete, 也就是我們常見的Input框進行搜索時, 發(fā)現(xiàn)每當輸入的文字改變就會發(fā)起請求,并且文檔中并不支持節(jié)流, 要知道這個服務(wù)是收費的, 這就會造成浪費.

Google了這個問題, 發(fā)現(xiàn)好多人有此需求, 并且給Google提了Feature Request, 但是貌似并沒有什么回應(yīng).

最后在翻閱文檔以及Stack Overflow之后, 我發(fā)現(xiàn)可以用Retrieving Autocomplete PredictionsPlace Details來實現(xiàn)自定義搜索功能.

具體實現(xiàn)邏輯請訪問在線DEMO.

如果你也有此需求, 不要直接copy代碼, 里面可優(yōu)化的地方有

import React, { useRef, useState, useEffect } from "react"; 

建議把marker, map, autocompleteService, placeService 這些統(tǒng)一放到一個對象中, 看起來比較干凈.

type MapContext = {
  map: google.maps.Map;
  placesService: google.maps.places.PlacesService;
  autocompleteService: google.maps.places.AutocompleteService;
  infoWindow: google.maps.InfoWindow;
  latlng: google.maps.LatLngLiteral;
};

const [mapContext, setMapContext] = useState<MapContext>();
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容