Php 如何根据从x分钟到xx分钟的驾驶时间范围实现查询?

Php 如何根据从x分钟到xx分钟的驾驶时间范围实现查询?,php,here-maps-rest,Php,Here Maps Rest,有一些地方我可以选择。我想选择一个作为我的来源地,并选择驾驶时间成本低于30分钟。因此,可能会有一些地方我可以开车去那里花费不到30分钟的时间 那么,保存所有这些位置数据并根据特定条件查询它们的最佳方法是什么 在我问这个问题之前,我试着保存所有这些地方的经纬度。每当一个新地点被保存到数据库中时,我都会在这里请求map routing API使用数据库中的所有旧地点信息计算新地点之间的距离和行驶时间,然后将它们保存在距离表中 当用户想要像上面的例子一样查询位置时。我将连接位置表和距离表进行查询,如

有一些地方我可以选择。我想选择一个作为我的来源地,并选择驾驶时间成本低于30分钟。因此,可能会有一些地方我可以开车去那里花费不到30分钟的时间

那么,保存所有这些位置数据并根据特定条件查询它们的最佳方法是什么

在我问这个问题之前,我试着保存所有这些地方的经纬度。每当一个新地点被保存到数据库中时,我都会在这里请求map routing API使用数据库中的所有旧地点信息计算新地点之间的距离和行驶时间,然后将它们保存在距离表中

当用户想要像上面的例子一样查询位置时。我将连接位置表和距离表进行查询,如下所示:

SELECT place.id, place.name from place join distance on place_id = place.id where distance cost_time < 30;
选择place.id,place.name from place join distance on place\u id=place.id,其中距离花费时间<30;
有一些问题让我心烦意乱。如果旧位置的数量太多(实际上会),则将位置保存到数据库后的挂起时间会多得多

所以,我知道我用了一种糟糕的方法来实现我的目标。但我不知道该怎么办,有人能帮我解决这个问题吗


最后但并非最不重要的一点,忘记我糟糕的英语,如果有什么不清楚的地方,我会尽力描述它。谢谢。

您可能需要构建一个连通图,并计算到其他点的距离

添加新点时,仅计算其和X近邻的距离,并将其存储在数据库中

然后,您可以使用类似的算法来查找距离源不到30个单位的所有点


您将失去一些精度,因为从A到C,然后从C到B的驾驶成本通常会高于从A到B的直接路径。并且您在添加新点时节省的时间,您将“丢失”它可以用来计算Dijkstra算法。

你的意思是,我仍然需要通过API计算所有位置之间的距离,但当我将其存储在数据库中时,我需要将其保存为图形数据结构的形式。当我根据条件取出它时,我应该用Dijkstra算法计算它吗?