【问题标题】:The better way to solve a Google Maps markers filter problem解决谷歌地图标记过滤问题的更好方法
【发布时间】:2019-09-21 07:05:59
【问题描述】:

我需要在地图上过滤项目(GOOGLE MAP)

像 Tinder 一样按范围距离过滤以仅显示距离原点较近的项目

就像一个 30 公里的半径

我数据库中的任何项目都有 LATITUDE / LONGITUDE 和完整地址

在 Google 地图上过滤和显示这些项目有什么更好更快的方法

我已经使用 Google Maps API 和 Haversine 公式获得了两个坐标之间的公里距离

过滤和返回过滤后的项目以添加标记到地图的更好方法是什么?

选项 A:最好在 PHP (Laravel) 中创建一个函数来在服务器端进行过滤并通过 API 将这些项目返回给 Ionic APP?

选项 B:最好从 API 获取坐标,然后在 Ionic APP 中创建一个函数,以在客户端返回过滤后的项目以显示在 Google 地图上?

选项 C:或者您可以提出其他更好的想法?

请问有人可以帮助我吗?

我知道是一个简单的问题 但我担心的是,当这个项目增长并有很多项目要过滤时,需要很多时间来过滤并将项目返回到谷歌地图

欢迎提出建议

【问题讨论】:

    标签: javascript angular laravel ionic-framework google-maps-api-3


    【解决方案1】:

    您可能需要考虑将数据保存为point 数据类型。

    $table->point('position');
    

    MYSQL 具有基本的几何支持,因此您可以查询它以仅查找边界框内的点或通过您想要的任何其他几何操作。

    另外,请查看此 repo:https://github.com/grimzy/laravel-mysql-spatial,您可以在其中看到 scopes 解释如何查询它的部分。

    【讨论】:

    • 谢谢,我会看看你的提示
    • 只适用于最近的Mysql版本,MariaDB还没有这个功能
    猜你喜欢
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 2012-08-07
    • 2021-12-23
    相关资源
    最近更新 更多