如何将 requestOptions 设置为 usePlacesAutocomplete

How to set a requestOptions to usePlacesAutocomplete

提问人:Szymcio 提问时间:11/10/2023 更新时间:11/10/2023 访问量:34

问:

我正在使用 usePlacesAutocomplete,尽管设置了我想要搜索的值,但我仍然以国家/地区名称的形式获得不需要的结果。这些不是波兰的街道名称。我期待在这一领域取得具体成果。我怎样才能做到这一点?

type PlacesProps = {
  setAddress: (key: string, value: string|number) => void;
};
export default function Places(props:PlacesProps ) {
  const apiKey = import.meta.env.VITE_MAP_API_KEY;
  const googleMapsLibraries = ['places'];

  const { isLoaded } = useLoadScript({
    googleMapsApiKey: apiKey,
    libraries: googleMapsLibraries,
  });

  const PlaceAutocomplete = () => {
    const {
      ready,
      value,
      setValue,
      suggestions: { status, data },
      clearSuggestions,
    }= usePlacesAutocomplete({
      requestOptions: {
        types: ['street_address'],
        componentRestrictions: {
          country: 'pl'
        },
        language: 'pl',
      },
    });
  ...
...
..
  const memoizedPlaceAutocomplete = useMemo(() => <PlaceAutocomplete />, []);

  return memoizedPlaceAutocomplete;
}
reactjs google-maps google-api 自动完成 地理编码

评论


答:

0赞 Joe - Check out my books 11/10/2023 #1

我不确定usePlacesAutocomplete在后台使用什么,但如果是Places自动完成服务则不支持street_address

enter image description here

看,google.maps.placesAutocomplete 小部件地点类型约束与您的包使用的不是一回事。令人困惑,我知道。google.maps.places.AutocompleteService()

支持的是表 3,您可以尝试 和 类型,看看哪个效果更好。geocodeaddress

在响应后处理步骤中,您可以筛选出不适合您的用例的建议。


自动完成仍然令人困惑?查看我对该主题的开发人员友好型看法

评论

0赞 Szymcio 11/10/2023
但它仍然给了我像“葡萄牙”这样的东西,我只想从 pl 地区建议,最好情况下只有街道