如何在数据库中保存跟踪折线?

2024-03-08

我创建了一个功能,可以跟踪用户的路线并创建折线。我一直在尝试将其保存到 Firebase - 路线 ID、路线名称、纬度、经度

我使用的方法是,每次位置更改时,用户的新纬度和经度都会保存到 Firebase、用户设置的路线名称和(当前)静态路线 ID 中。

 if (mCurrentLocation != null) {
        String newLat = String.valueOf(mCurrentLocation.getLatitude());
        String newLng = String.valueOf(mCurrentLocation.getLongitude());

        LatLng newPoint = new LatLng(mCurrentLocation.getLatitude(), mCurrentLocation.getLongitude());
        List<LatLng> points = route.getPoints();
        points.add(newPoint);
        route.setPoints(points);

        Map<String, String> routePoint = new HashMap<String,String>();
        routePoint.put("routeID", "124");
        routePoint.put("routeName", saveRouteTitle);
        routePoint.put("lat", newLat);
        routePoint.put("lng", newLng);
        mFirebaseRef.push().setValue(routePoint);
    }

但是,当我使用适配器检索数据时,如下所示,

@Override
protected void populateView(View view, Route route) {
    // Map a Chat object to an entry in our listview
    String routeName = route.getRouteName();
    int routeID = route.getRouteID();
    String lat = route.getLat();
    String lng = route.getLng();
    TextView tvRouteName = (TextView) view.findViewById(R.id.tvRouteName);
    tvRouteName.setText(routeName + ": ");
}

我得到的是“route”每个子项的列表视图,这意味着如果我设置的routeName是"Walking",就会出现一个列表,里面写着“步行”。 我想将同一路线名称的所有纬度和经度保存在一起,然后在列表视图中检索它们,以便当用户选择路线名称时,我可以使用数据库中的纬度和经度重新生成地图上的折线。这可以做到吗?我不介意不使用 Firebase,但在线服务器更适合备份。


Firebase 非常适合存储和检索此类数据。

例如,假设您让用户输入路线名称和 ID,并且您希望存储从起点到目的地的路径沿线的航点(每个航点的纬度和经度):

将数据存储在 Firebase 中的一种方法是:

random_route_node_name
  routeName: "a route name"
  routeId: "some route id"
  waypoints
      random_waypoint_node_name
        lat: "latitude"
        lon: "longitude"
      random_waypoint_node_name
        lat: "latitude"
        lon: "longitude"
random_route_node_name
  routeName: "a route name"
  routeId: "some route id"
  waypoints
      random_waypoint_node_name
        lat: "latitude"
        lon: "longitude"
      random_waypoint_node_name
        lat: "latitude"
        lon: "longitude"

在每个父节点 (random_route_node_name) 中,您有路线名称、id,然后是路径上的航点,每个航点都有经度和纬度。

有几件重要的事情需要指出。

random_route_node_name 和 random_waypoint_node_name 是使用 Firebase childByAutoId 或其他非特定名称生成的名称。这是因为节点的名称不应直接与数据绑定,因此可以更改数据而不影响节点名称。航路点也是如此;可以修改航点子数据而不影响子父名称

我不知道是否需要查询航路点的功能,但如果是这样,应该做的其他事情是展平此数据 - 每条路线的航路点可以存储在单独的节点中,这将允许查询特定航路点处于高水平。例如,用户想要知道其当前位置半径内的所有路径点。

事实上,查询只能在特定的路线内完成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在数据库中保存跟踪折线? 的相关文章

随机推荐

  • HTML5 视频自动播放,但有 5 秒延迟

    我的网页上有一个 20 秒长的 HTML5 视频循环作为背景 并将其设置为自动启动 视频自动播放可以延迟5秒吗 我试图在尝试播放之前让视频完全加载 以防止视频卡顿 这是我当前的代码
  • 对象方法调用不带括号

    导入后是否可以调用不带括号的对象方法 这是我的测试代码 基于本文 http www artima com scalazine articles package objects html马丁 奥德斯基 package gardening fr
  • 实体框架:获取不直接相关的对象

    我正在为我的 NET 应用程序使用实体框架 我也能够返回对象及其直接相关的对象 非常方便 但我在获取这些对象的对象时遇到问题 IEnumerable
  • 在 wpf 中运行视频

    我希望我的第一个项目以视频的形式实现 我该怎么做 我想播放视频 然后当我单击表单时 视频停止并且应用程序转到另一个页面 请帮我 尝试使用 MediaElement
  • Windows 8 - 自定义动态磁贴

    我们正在使用 C 开发适用于 Windows 8 的应用程序 我们的应用程序涉及用户创建的绘图 我们希望将他们的绘图合并到活动磁贴中 我找到了将文本和图片设置为应用程序的动态磁贴的示例 有没有办法做自定义的事情来渲染线条等 或者是通过将 P
  • Formvalidation.io - 无法读取 null 的属性“classList”

    使用 formvalidation io 时 我的控制台总是出现错误 我不知道这个错误的原因是什么 即使我使用后端验证 URL 我仍然会在某些网站上收到垃圾邮件 我正在使用隐形 ReCaptcha https formvalidation
  • 元素结束标记中的属性?

    执行以下操作是否被视为有效 li stuff li li stuff li li stuff 或者做属性have出现在开始标签中 不 不是 您必须在开始标记中使用属性 Running a test in w3c 验证器 http valid
  • 将 springboot 升级到 2.4.4 后,response.sendError(statusCode, "error message") 不起作用

    我在用AuthenticationEntryPoint处理身份验证问题 将异常原因传递给最终用户 response sendError responseCode errorReason 我最近将 Spring Boot 从 2 2 11 R
  • 类似 Javascript ||在 PHP 中 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 In javascript 我可以使用 例如这样的语句 window foo window foo 如果没有的话window foo它将被分配给
  • C++方法声明问题

    我在 Image cpp 中有一些代码 Image Image int width int height int depth m sFileName 0 and in Image h class Image public DrawAble
  • 调试使用 pm2 运行的应用程序

    应用程序由以下人员运行 pm2 start app js or pm2 start config json 我想使用 node inspector 在本地调试我的应用程序 我添加了debug争论 pm2 start node args de
  • UIBarButtonItem 图像应该有多大?

    我正在创建自己的自定义 按日期排序 和 按数字排序 按钮 我计划将它们作为右侧按钮放置在导航栏中 我的图像应该有多大才能适当地填充空间 UIBarItem https developer apple com documentation ui
  • 如何使用 php 在 XML 文件中进行搜索?

    不知道有没有办法在xml文件中搜索 例如 我想要得到Value使用Name from AttrList和产品代码 是否可以 这就是我的 xml 的样子
  • jQuery 将类添加到图像链接,而不会在链接传递变量时弄乱

    好的 所以我使用了一些 jquery 来选择所有 a 页面上的标签以及它们是否链接到图像文件以添加zoom出于灯箱的目的对其进行类处理 这是有效的代码 document ready function a href png a href gi
  • List<>.IndexOf 是按引用还是按值进行比较?

    List
  • ant+cpptasks 与 scons 与 make

    我正在调查scons http www scons org 我只是想确保在我将大量脑细胞投入到完全不同的事物之前我知道替代方案是什么 我过去一直在使用 GNU make 但从来没有对它感到特别满意 特别是 为什么 Ant 没有更频繁地用于
  • 使用固定装置返回值作为 mark.parametrize() 中的值

    我的问题是 是否可以使用夹具的返回值作为参数化中的值 问题是 我想动态获取参数化的可能值 例如 虚拟服务器上的可用系统 当其中一个设备创建虚拟服务器时 我可以访问这些 测试看起来像这样 伪代码 conftest py pytest fixt
  • iOS 7:自定义容器视图控制器和内容插入

    我有一个封装在导航控制器中的表视图控制器 当通过以下方式呈现时 导航控制器似乎会自动将正确的内容插入应用到表视图控制器presentViewController animated completion 谁能向我解释一下它到底是如何工作的 但
  • Paypal 结帐中无法访问 iframe 元素 id 的异常处理

    我有一个电子商务网站 当我尝试下订单时 它会重定向到 Paypal 页面 当我以 Paypal 用户身份登录时 它会重定向到另一个结账屏幕 我在其中尝试使用 selenium Web 驱动程序进行自动化 在此步骤中 出现以下异常 我尝试使用
  • 如何在数据库中保存跟踪折线?

    我创建了一个功能 可以跟踪用户的路线并创建折线 我一直在尝试将其保存到 Firebase 路线 ID 路线名称 纬度 经度 我使用的方法是 每次位置更改时 用户的新纬度和经度都会保存到 Firebase 用户设置的路线名称和 当前 静态路线