最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

mysql查询以获取问题中解释的2个Latlng之间的路由

网站源码admin16浏览0评论

mysql查询以获取问题中解释的2个Latlng之间的路由

mysql查询以获取问题中解释的2个Latlng之间的路由

我正在寻找一个查询来获取两点之间的路线,这很难解释,但是,

我有这个链接可以说

example/any? lat1 = 31.0000 & lng1 = 31.0000 & lat2 = 31.0000 & lng2 = 31.0000

所以在函数内部,我想编写一个查询到表示例的内容,

id | lat1    | lng1    | lat2    | lng2     | time | distance_between_inKm
1  | 31.0000 | 31.0000 | 31.0000 | 31.0000   | 30   | 20

所以现在我想转到链接并获取最近的||。最近*路线或行

我从链接lat1&lng1和lat2&lng2中获取这些信息,所以我想最接近2。很抱歉,很难解释我尽了最大的帮助吗?

所以我想要的是我有一个表,其中包含折线的静态数据和2点的信息,所以我想像谷歌矩阵API一样使用它们,但从我的服务器说起。。

更新:

我尝试了此查询,但是它忽略了AND的任何帮助?

    SELECT id,distance_between,time_between,start_latitude, start_longitude,end_latitude,end_longitude, SQRT(
        POW(69.1 * (start_latitude - 31.908482676577364), 2) +
        POW(69.1 * (35.1666776731924 - start_longitude) * COS(start_latitude / 57.3), 2)) 

AND
        SQRT(
        POW(69.1 * (end_latitude - 31.966051), 2) +
        POW(69.1 * (35.894587 - end_longitude) * COS(end_latitude / 57.3), 2))
        AS distance
    FROM matrix_api USE INDEX (start_latitude,start_longitude,end_latitude,end_longitude,distance_between,time_between) HAVING distance < 0.2 ORDER BY distance LIMIT 1;

所以我想要这样的输入1和2,并给我包含2的行

同时关闭开头和结尾的语言

我也尝试过此更新:

    SELECT id,distance_between,time_between,start_latitude, start_longitude,end_latitude,end_longitude, 
SQRT(
    POW(69.1 * (start_latitude - 32.016659), 2) +
    POW(69.1 * (35.727839 - start_longitude) * COS(start_latitude / 57.3), 2) AND

POW(69.1 * (end_latitude - 31.966051), 2) +
    POW(69.1 * (35.894587 - end_longitude) * COS(end_latitude / 57.3), 2)

) 

    AS distance
FROM matrix_api USE INDEX (start_latitude,start_longitude,end_latitude,end_longitude,distance_between,time_between) HAVING distance < 0.2 ORDER BY distance LIMIT 1;
回答如下:
{
   "destination_addresses" : [ "New York, NY, USA" ],
   "origin_addresses" : [ "Washington, DC, USA" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "225 mi",
                  "value" : 361715
               },
               "duration" : {
                  "text" : "3 hours 49 mins",
                  "value" : 13725
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}

这是从Google Matrix API获得的响应,为了提供距离,您将使用我在评论中谈到的方法(我将在下面链接)。

对于持续时间,您将使用距离/速度=持续时间。

[如果您想知道如何获得speed,我会使用该国家/地区的平均速度限制,甚至是国家速度限制。对于我的国家/地区来说,国民时速通常为60英里/小时。

因此,如果我的点之间的距离是225英里,并且我以每小时60英里的速度行驶,则持续时间是3.75或3小时45分钟。

我想为您提供从哪里开始的至少一些指导,我强烈建议您研究解决位置问题,因为这将为您提供解决方案。

  • https://stackoverflow/a/24372831/2932298
  • https://medium/maatwebsite/the-best-way-to-locate-in-mysql-8-e47a59892443

我建议阅读第二个链接,我快速浏览了一下,但是它提供了相当深入的解释来解决您的问题。

忽略使用PHP的事实,因为MySQL提供的大多数功能都可以用任何一种语言重新实现。

忽略使用MySQL的事实,您可以使用任何一种语言重新实现它,因为MySQL中的大多数功能都以编程语言(尤其是数学函数)存在。

有很多方法可以解决此问题。希望这会帮助您入门。

发布评论

评论列表(0)

  1. 暂无评论