uniapp 地理位置选择

1.需要引入uni-app文档中uni-ui文档组件具体怎么操作在uni-app文档里可以查看

2.引入之后<uni-search-bar>标签在里面直接使用

下面上代码

<template>
  <view>
    <uni-search-bar placeholder="请输入地址" @focus="onFocus" v-model="keyword" />
  </view>
</template>

要实现的是选择地址的功能,可以在 uni-search-bar 上绑定 @focus 事件,该事件在输入框获得焦点时触发,可以在事件处理函数中打开选择位置的页面。选择位置的页面使用 uni-choose-location 组件可以选择地址,选择完成后返回地址信息。在主页面的 @choose-location 事件中,可以获取到选择的地址信息并更新输入框的值。

下面是逻辑代码

<script>
  export default {
    data() {
      return {
        keyword: '', // 搜索关键词
      };
    },
    methods: {
      onFocus() {
        uni.chooseLocation({
          success: ({
            name,
            address
          }) => { // 选择位置完成后的处理 
            this.keyword = address;
          },
        });
      },
    },
  };
</script>

需要在手机上运行  并且手机需要联网

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Uniapp提供了一个内置的地址选择器组件 `uni-picker`,可以用来实现地址选择器。 具体步骤如下: 1. 在 `template` 中创建地址选择器的布局 ``` <template> <view> <view class="form-item"> <view class="label">选择地址</view> <view class="value">{{ address }}</view> <uni-icons class="arrow-right" type="angle-right"></uni-icons> </view> <uni-popup show="{{ show }}" position="bottom" style="height: 80%;" > <view class="picker-wrapper"> <uni-picker :value="addressValue" @change="handleAddressChange" :range="addressRange" mode="region" :disabled="!addressReady" ></uni-picker> </view> </uni-popup> </view> </template> ``` 2. 在 `data` 中定义地址相关的变量 ``` <script> export default { data() { return { address: '', // 选中的地址 addressValue: [], // 地址选择器的值 addressRange: [], // 地址选择器的选项 addressReady: false, // 地址选择器是否已准备好 show: false // 是否显示地址选择器 } }, // ... } </script> ``` 3. 在页面加载时初始化地址选择器的选项 ``` onLoad() { // 初始化地址选择器的选项 uniCloud.callFunction({ name: 'getAddressRange', // 云函数名 data: {} // 参数 }).then(res => { const { province_list } = res.result const range = [province_list, [], []] this.addressRange = range this.addressReady = true }) } ``` 4. 当用户选择地址时,更新 `address` 和 `addressValue` 变量的值,并隐藏地址选择器 ``` methods: { handleAddressChange(e) { const [province, city, district] = e.detail.value this.address = `${province}-${city}-${district}` this.addressValue = e.detail.value this.show = false }, // ... } ``` 5. 点击地址选择器组件时,显示地址选择器 ``` methods: { handleAddressClick() { this.show = true }, // ... } ``` 这样就完成了地址选择器的实现。注意,上述代码中使用了云函数 `getAddressRange` 来获取地址选择器的选项,你需要自行实现该云函数来返回地址选择器的选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

manyfish.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值