我是 iOS 上的一个应用程序,它有 Trip Planner。例如,我使用谷歌方向 API 来获取从纽约到波士顿的路线。我有 50 个不同的经纬度来在地图上制作折线。在那之后,我需要在这条路线上找到我可以在去波士顿的路上参观的地方。
谷歌方向 API 给了我:
latitude = "30.308399"; longitude = "-89.748299";
latitude = "30.310930"; longitude = "-89.818604";
latitude = "30.350050"; longitude = "-89.916054";
latitude = "30.432850"; longitude = "-90.098549";
....
现在,对于每个点,我都会在 mysql 数据库中搜索以获取最近的位置:
选择 id,title,type_id,service_id,latitude,longitude,state,city,zip,address, ( 3959 * acos( cos( 弧度(31.72723) ) * cos( 弧度(latitude ) ) * cos( 弧度( longitude ) - 弧度(-106.3047)) + sin( 弧度(31.72723) ) * sin( 弧度(纬度) ) ) ) AS 到地方的距离距离 <= 10 按距离排序 ASC 限制 10
但是如果这次从纽约到旧金山的旅行,我将有 800 分,我会向数据库进行 800 次查询,总共需要 2 秒以上。而且我有 7 个不同的表,这将是 14 秒。
如果最好怎么办?