首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GEOFirestore获取附近的地理信息结果

使用GEOFirestore获取附近的地理信息结果
EN

Stack Overflow用户
提问于 2018-12-31 12:23:21
回答 1查看 753关注 0票数 1

我正在使用GeoFirestore在云Firestore上编写一个云函数,根据中心和半径查询附近的位置。

初始化代码如下所示

代码语言:javascript
复制
    const firebase = require('firebase');
    const admin = require('firebase-admin');
    const functions = require('firebase-functions');
    const GeoFirestore = require("geofirestore").GeoFirestore;
    admin.initializeApp(functions.config().firebase);
    const db = admin.firestore();

要查询的JS代码为

代码语言:javascript
复制
const object = db.collection('UserObject');
var geoFirestore = new GeoFirestore(object);
const geoQuery = geoFirestore.query({
    center: new firebase.firestore.GeoPoint(17.500362, 78.587374),
    radius: 1
});
geoQuery.on('ready', () => {
    var locations = geoQuery._locationsTracked;
    var keys = [];
    locations.forEach(function (locationMap, key) {
        if (typeof locationMap !== 'undefined' && locationMap.isInQuery) {
            keys.push(locationMap);
        }
    });
    response.status(200).json(keys);
  });

我是GeoFirestore库的新手。我的问题是,这是一个适当的实现来获取附近的位置,还是有一种不同的方式来使用这个库查询附近的位置?

EN

回答 1

Stack Overflow用户

发布于 2018-12-31 13:09:22

这需要大量的返工,但解决方案会更简单(注释中解释的代码):

代码语言:javascript
复制
const object = db.collection('UserObject');
const geoFirestore = new GeoFirestore(object);
const geoQuery = geoFirestore.query({
  center: new firebase.firestore.GeoPoint(17.500362, 78.587374),
  radius: 1
});

// Where we will store the results
const results = [];

// As documents come in, push them into our results
geoQuery.on('key_entered', (key, document) => results.push(document));

// After the query is initially complete we then send the results to the client
geoQuery.on('ready', () => response.status(200).json(results));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53983550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档