Clojurescript - 无法限制到 Google 地点自动完成 API 中的城市
Clojurescript - Unable restrict to a city in Google Places Autocomplete API
我想搜索特定位置附近的地点。我使用选项 location、radius 和 strictbounds 进行了尝试。但是,它总是返回美国的所有地址。
我的代码如下所示:
(def Autocomplete (oget js/window "google.maps.places.Autocomplete"))
(defn mount-autocomplete [ctx form-props el]
(let [autocomplete (Autocomplete. el #js {:location #js {:lat 40.730610 :lng -73.935242} :radius 15 :strictBounds true :rankBy google.maps.places.RankBy.DISTANCE :componentRestrictions #js {:country "US"}})]
(ocall autocomplete "addListener" "place_changed"
(fn []
(this-as this
(let [place (js->clj (ocall this "getPlace") :keywordize-keys true)
formatted-address (join-address-parts (place->address place))]
(js/console.log formatted-address)
(oset! el "value" (:street formatted-address))
(doseq [[k v] formatted-address]
(<cmd ctx :on-change [form-props [:address k] nil v nil]))))))))
我认为它只需要给定选项中的 componentRestrictions。有什么想法吗?
要使 strictBounds
属性 正常工作,您需要传递边界对象,而不是文档中提到的位置和半径。
Set the strictBounds
option to restrict the results to the given bounds, even while the viewport changes.
https://developers.google.com/maps/documentation/javascript/places-autocomplete#set_search_area
bounds
参数必须是LatLngBounds
对象或LatLngBoundsLiteral
。
如果使用 bounds
和 strictBounds:true
则不需要国家成分限制 and/or 可能会与给定的边界冲突。
我想搜索特定位置附近的地点。我使用选项 location、radius 和 strictbounds 进行了尝试。但是,它总是返回美国的所有地址。
我的代码如下所示:
(def Autocomplete (oget js/window "google.maps.places.Autocomplete"))
(defn mount-autocomplete [ctx form-props el]
(let [autocomplete (Autocomplete. el #js {:location #js {:lat 40.730610 :lng -73.935242} :radius 15 :strictBounds true :rankBy google.maps.places.RankBy.DISTANCE :componentRestrictions #js {:country "US"}})]
(ocall autocomplete "addListener" "place_changed"
(fn []
(this-as this
(let [place (js->clj (ocall this "getPlace") :keywordize-keys true)
formatted-address (join-address-parts (place->address place))]
(js/console.log formatted-address)
(oset! el "value" (:street formatted-address))
(doseq [[k v] formatted-address]
(<cmd ctx :on-change [form-props [:address k] nil v nil]))))))))
我认为它只需要给定选项中的 componentRestrictions。有什么想法吗?
要使 strictBounds
属性 正常工作,您需要传递边界对象,而不是文档中提到的位置和半径。
Set the
strictBounds
option to restrict the results to the given bounds, even while the viewport changes.
https://developers.google.com/maps/documentation/javascript/places-autocomplete#set_search_area
bounds
参数必须是LatLngBounds
对象或LatLngBoundsLiteral
。
如果使用 bounds
和 strictBounds:true
则不需要国家成分限制 and/or 可能会与给定的边界冲突。