小程序云开发实现根据地理位置范围内搜索数据

简介: 小程序云开发实现根据地理位置范围内搜索数据

获取各种资料粒子特效、可视化等源码

业余时间在开发一个类似时间胶囊的小程序,由于微信提供云开发,所以省了不少事,最近在研究根据当前地理位置,在指定半径内获取已经埋藏的时间胶囊,在实际开发过程中,遇到了一点小问题,最后也很好的解决了,因此记录下。

功能描述

其实功能很简单,就是获取当前地理位置,在根据当前地理位置半径为500米(可自由设定半径)获取已经埋藏好的时间胶囊,

实现步骤

  1. 云开发里面新建一个集合,里面放用户数据,不过多讲解,官方文档写的很清楚。
  2. 集合里面的数据有个字段是存用户地理位置的,这个要详细讲讲,因为这个并不是我们之前以对象形式保存的, 需要用到这种数据格式

image.png

应该可以看到,我们是以geopoint形式保存的,保存的云函数要用下面这种方式。

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  return await db.collection('你的集合').add({
    data: {
      location: db.Geo.Point(event.location.longitude, event.location.latitude),
    },
  })
}

复制

其余字段我已经删掉,这里保存loaction时一定要用这种方式保存(db.Geo.Point),因为之后查询要用

  1. 如果集合里没有数据可以自己创建一条测试数据,接下来我们就要对字段设置索引,官方文档这里一带而过,不熟悉的人肯定会一脸蒙,我刚开始也是,最后才看到有人提供详细步骤。 这块是官方一笔带过的,只是写了要配置索引。但是没有具体讲解,首先你的字段名字叫什么,我的是loaction,那就打开

image.png

点击你的集合名称,找到索引管理

image.png

添加索引

image.png

3.  新建查询云函数,如果你只根据location字段搜索,我下面的你可以直接复制,把参数传进来,替换Point里面的坐标即可。

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
const _ = db.command
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()
  return await db.collection('你的集合').where({
    location: _.geoNear({
      geometry: db.Geo.Point(113.323809, 23.097732),
      minDistance: 0,
      maxDistance: 500,
    })
  }).get().then(res => {
    return res
  })
}

复制

4.  如何调用这里应该不用说了,最后正常调用就可以获取数据了。

相关文章
|
3月前
|
存储 安全 小程序
在微信小程序中使用 Vant 时如何确保数据的安全?
在微信小程序中使用 Vant 时如何确保数据的安全?
50 1
|
1月前
|
小程序 机器人 开发者
QQ 小程序已发布,但无法被搜索的解决方案
我的 QQ 小程序在 2024 年 8 月就已经审核通过,上架后却一直无法被搜索到。打开后,再在 QQ 上下拉查看 “最近使用”,发现他出现一下又马上消失。
43 2
|
5月前
|
小程序 数据库
【微信小程序-原生开发】实用教程10 - 动态的新增、修改、删除(含微信云数据库的新增、修改、删除,表单弹窗、确认弹窗、日期选择器、单行输入框、多行输入框、滑动组件的使用)
【微信小程序-原生开发】实用教程10 - 动态的新增、修改、删除(含微信云数据库的新增、修改、删除,表单弹窗、确认弹窗、日期选择器、单行输入框、多行输入框、滑动组件的使用)
184 0
|
2月前
|
小程序 JavaScript 开发工具
|
2月前
|
缓存 小程序 UED
如何利用小程序的生命周期函数实现数据的加载和更新?
如何利用小程序的生命周期函数实现数据的加载和更新?
80 4
|
2月前
|
移动开发 小程序 数据可视化
微信小程序可视化开发工具之动态数据
微信小程序可视化开发工具之动态数据
46 3
|
2月前
|
小程序 开发工具
微信小程序云开发的开通
微信小程序云开发的开通
56 0
微信小程序云开发的开通
|
4月前
|
缓存 小程序 数据库
小程序页面之间(传值)传递数据的方法
小程序页面之间(传值)传递数据的方法
194 63
|
3月前
|
小程序 开发者
微信小程序之网络数据请求 wx:request的简单使用
这篇文章介绍了微信小程序中如何使用wx.request进行网络数据请求,包括请求的配置、请求的格式以及如何在开发阶段关闭请求的合法检验。
微信小程序之网络数据请求 wx:request的简单使用
|
3月前
|
小程序 JavaScript 开发工具
微信小程序——全局数据共享
微信小程序——全局数据共享