React Native
...
Parse SDK (REST)
Data objects

如何在React Native中使用Parse进行地理定位查询

9min

使用 React Native 地理定位通过 Parse 执行地理查询

介绍

在本指南中,您将使用 React Native 地理定位在 Parse 中执行地理查询。您将实现一个使用这些查询的 React Native 组件,并学习如何使用 Back4App 和 React Native 设置和查询真实数据。

先决条件

要完成本教程,您需要:

  • 一个已创建并连接到 Back4App 的 React Native 应用程序。
  • 如果您想测试/使用本指南提供的屏幕布局,您应该设置react-native-paper,还需要 react-native-geolocation-service

目标

使用存储在 Back4App 上的地理点和 React Native 地理定位执行地理查询。

1 - 理解 Parse.Query 类

任何 Parse 查询操作都使用 Parse.Query 对象类型,这将帮助您在应用程序中从数据库中检索特定数据。重要的是要知道,只有在调用检索方法(如 Parse.Query.findParse.Query.get)后,Parse.Query 才会解析,因此可以在实际调用之前设置查询并链接多个修饰符。

要创建一个新的 Parse.Query,您需要作为参数传递所需的 Parse.Object 子类,它将包含您的查询结果。下面可以看到一个示例查询,其中查询了一个虚构的 Profile 子类。

JS


您可以在官方文档中阅读更多关于 Parse.Query 类的信息,请点击这里查看官方文档

2 - 在 Back4App 上保存一些数据

让我们创建一个 City 类,它将是我们在本指南中查询的目标。在 Parse JS 控制台中,可以直接运行 JavaScript 代码,使用 JS SDK 命令查询和更新您的应用程序数据库内容。从您的 JS 控制台运行下面的代码并在 Back4App 中插入数据。

以下是您的仪表板中 JS 控制台的样子:

Document image


继续创建 City 类,内容如下示例:

JS


3 - 查询数据

现在您已经有了一个填充的类,我们可以在其中执行一些GeoPoint查询。让我们开始按距离从牙买加金斯敦(纬度18.01808695059913和经度-76.79894232253473)最近的结果进行排序,使用 City 方法:

JS


现在让我们使用方法Parse.Query.withinKilometers, 这将检索所有GeoPoint字段位于最大距离内的结果。金斯敦将再次作为参考,距离限制为3000公里。

JS


另一个有用的查询方法是Parse.Query.withinPolygon, 它将查询 GeoPoint 字段值在指定多边形内的结果,该多边形由一个 GeoPoints 数组组成(至少三个)。如果多边形路径是开放的,Parse 会自动通过连接最后一个和第一个点来关闭它。

在这个例子中,你将使用一个简单的多边形,大致包含南美洲大陆,由 5 个远离海洋的 GeoPoints 组成。

JS


4 - 从 React Native 组件查询

现在让我们在 React Native 组件中使用我们的示例查询,界面简单,包含一个显示结果的列表和三个用于调用查询的按钮。该组件还使用react-native-geolocation-service来获取设备的当前位置,因此查询将使用真实数据。

这就是组件代码的布局方式,请注意 doQuery 函数,包含之前的示例代码形式。

JavaScript
TypeScript


这是组件在渲染后以及查询其中一个查询函数时的样子:

Document image


结论

在本指南的最后,您了解了GeoPoint数据查询在Parse上的工作原理,以及如何在React Native应用程序中在Back4App上执行这些查询。在下一个指南中,您将查看如何在Parse中创建和管理用户。