Clojurescript - Невозможно ограничить город в API Google Places Autocomplete - PullRequest
0 голосов
/ 15 февраля 2019

Я хотел бы искать места вокруг определенного места.Я попробовал это, используя параметры местоположения, радиуса и строгих границ.Но он всегда возвращает все адреса в США.

Мой код будет выглядеть так:

(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]))))))))

Я думаю, что он принимает только ограничения компонента из указанных параметров.Есть идеи?

1 Ответ

0 голосов
/ 15 февраля 2019

Чтобы свойство strictBounds работало, вам необходимо передать ограниченный объект, а не местоположение и радиус, как указано в документации.

Установите параметр strictBounds для ограничениярезультаты до заданных границ, даже при изменении окна просмотра.

https://developers.google.com/maps/documentation/javascript/places-autocomplete#set_search_area

Параметр bounds должен быть объектом LatLngBounds или LatLngBoundsLiteral.

https://developers.google.com/maps/documentation/javascript/reference/places-widget#AutocompleteOptions

При использовании bounds и strictBounds:true ограничение компонента страны не требуется и / или может конфликтовать с заданными границами.

...