欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

小程序里顯示附近的人,云開發(fā)數(shù)據(jù)庫實(shí)現(xiàn)附近的人,按照位置遠(yuǎn)近排序,附近多少公里內(nèi) ... - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >

小程序里顯示附近的人,云開發(fā)數(shù)據(jù)庫實(shí)現(xiàn)附近的人,按照位置遠(yuǎn)近排序,附近多少公里內(nèi) ...

發(fā)表時(shí)間:2022-7-26

發(fā)布人:葵宇科技

瀏覽次數(shù):37

最近好多同學(xué)問石頭哥附近的人如何實(shí)現(xiàn)。今天呢,就借助這篇文章,給大家做一個(gè)系統(tǒng)的解答。

老規(guī)矩,先看效果圖

可以看到我們?cè)诘貓D上顯示了附近的一些標(biāo)記點(diǎn)。

接下來就教大家如何實(shí)現(xiàn)附近的位置。

一,創(chuàng)建數(shù)據(jù)

首先我們查詢附近的人的時(shí)候,需要先有附近人的位置,也就是經(jīng)緯度。這里我以幾個(gè)城市的經(jīng)緯度為例。

大家可以自行百度查找你所需要的經(jīng)緯度。
這里經(jīng)緯度查到后,我們需要把這些位置信息存到數(shù)據(jù)庫里。

1,注意存位置時(shí)必須是Point類型

如上圖所示,我們可以直接在云開發(fā)數(shù)據(jù)庫里添加位置信息,類型是geopoint類型。
如我添加的北京的位置如下


這里按照這樣的類型,自己多添加幾個(gè)城市的經(jīng)緯度。當(dāng)然現(xiàn)實(shí)開發(fā)中,應(yīng)該是添加附近人的位置(經(jīng)緯度)

2,批量添加(選看)

如果感覺一個(gè)添加比較麻煩的話,可以先添加一條,然后導(dǎo)出為json,自己在json里批量編輯。


一定要注意_id不能重復(fù),格式要保持一致。這樣你批量編輯后,再把這個(gè)json重新導(dǎo)入到數(shù)據(jù)即可。


批量導(dǎo)入不是本節(jié)的重點(diǎn),就不在講解。我這里默認(rèn)你已經(jīng)添加好位置信息了

二,查找附近的人

我們查找附近的人,肯定是想按照排序由近到遠(yuǎn)的顯示附近的人在地圖上,所以這里我們就要用到geoNear做聚合查詢。
geonear查詢有兩種方式,建議大家用Aggregate.geoNear


詳細(xì)介紹大家可以自己去看官方文檔
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/aggregate/Aggregate.geoNear.html
用這個(gè)的主要好處是,我們可以拿到附近人離自己的距離


這個(gè)距離在做附近的人時(shí)很重要的。既然可以直接拿到,能省很多事的。具體的代碼后面給大家列出來,我們先繼續(xù)往下學(xué)習(xí)

三,獲取當(dāng)前的位置

我們要做附近的人肯定要先獲取自己的位置,獲取自己的位置就用wx.getLocation即可,對(duì)應(yīng)文檔如下
https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html
這個(gè)使用之前必須要在app.json里注冊(cè)權(quán)限,如果不注冊(cè)權(quán)限,就會(huì)報(bào)如下提示


所以在app.json里寫如下代碼

四,獲取附近人的經(jīng)緯度

代碼其實(shí)很簡單,如下


這樣我們就可以按照由近到遠(yuǎn)的順序獲取附近的人了,結(jié)果如下



石頭哥是在杭州,可以看到幾個(gè)城市里離杭州最近的是上海159公里的距離。


五,在地圖上顯示附近的人

既然位置都已經(jīng)查詢到了,我們就可以在地圖上顯示了,地圖上顯示用到了map組件的markers


對(duì)應(yīng)的js代碼如下

下面我把完整的代碼貼出來給到大家


wxml代碼

<map markers="{{markers}}" show-location scale="4" 
style="height: 100vh;" />

js代碼

Page({
  data: {
    markers: []
  },
  onLoad() {
    wx.getLocation({ //1,獲取自己的位置
      type: 'wgs84',
      successres => {
        const latitude = res.latitude
        const longitude = res.longitude
        console.log('當(dāng)前在杭州的經(jīng)緯度', res.longitude, res.latitude)
        //2,查找附近的人
        let markers = []
        const db = wx.cloud.database()
        const $ = db.command.aggregate
        db.collection('location').aggregate()
          .geoNear({
            distanceField'juli'// 與給定點(diǎn)的距離
            spherical: true,
            near: db.Geo.Point(longitude, latitude), //當(dāng)前自己的位置
          }).end()
          .then(res => {
            console.log('位置', res)
            res.list.forEach(item => {
              markers.push({
                longitude: item.location.coordinates[0],
                latitude: item.location.coordinates[1]
              })
            })
            // 地圖上的標(biāo)記點(diǎn)
            this.setData({
              markers
            })
          })
      }
    })
  }
})

好了,到這里就帶大家完整的實(shí)現(xiàn)了地圖上顯示附近人的功能了。如果覺得石頭哥文章還不錯(cuò),歡迎關(guān)注點(diǎn)贊。


相關(guān)案例查看更多