有人可以向我解释如何将结果限制在一个位置周围的半径吗?
使用 react-native-google-autocomplete :https://github.com/EQuimper/react-native-google-autocomplete
我尝试在我的代码中的不同位置添加它,但位置结果没有以任何方式过滤。
我在官方文档中找到了一些资源,但由于我已经在使用此库,我希望暂时保留它
我应该使用组件、道具吗?目前,我正在限制在用户输入的末尾添加城市的结果,但它非常有限且丑陋^^
希望你能抽出时间回答我,此致敬意
我的代码如下:
<GoogleAutoComplete
apiKey="*****"
debounce={500}
predefinedPlaces={notLocatedPlace}
minLength={4}
language="fr"
components="country:fr"
// location={{lat:45.526298,lng: 4.873333}}
// radius={"20000"}
>
{({
handleTextChange,
locationResults,
fetchDetails,
isSearching,
inputValue,
clearSearchs,
// location,
// radius,
}) => (
<React.Fragment>
{console.log('locationResults', locationResults)}
<View
style={styles.adressContainer}
// style={{flexDirection:"row", justifyContent:"center", alignItems:"center"}}
>
<TextInput
underlineColorAndroid="#dfdfdf"
placeholder="Rechercher une adresse"
onChangeText={handleTextChange}
value={inputValue}
style={styles.streetInput}
/>
{/* <Button
title="clear"
onPress={clearSearchs}
style={styles.streetNumberInput}
// color="#aaa"
/> */}
</View>
{isSearching && <ActivityIndicator size="large" color="#1faadb" />}
<ScrollView>
{locationResults.map(el =>(
<LocationResultItem
{...el}
key={el.id.toString()}
fetchDetails={fetchDetails}
{...{clearSearchs}}
// query={{
// location: '45.526298, 4.873333',
// radius: '15000', //15 km
// strictbounds: true,
// }}
/>
))}
</ScrollView>
{/* <Text></Text> details a importer 2 way binding*/}
</React.Fragment>
)}
</GoogleAutoComplete>
解决方案
可以将参数location
和radius
添加到query
对象。这对我有用:
query={{
key: appConfig.googleAPIKEY,
language: "de",
components: "country:de",
strictbounds: true,
location: "30.5324, 3.23234",
radius: "15000", // 15 km
}}
从这次讨论中得到了解决方案。