我是一个iOS应用程序,拥有旅行计划功能。例如,我使用Google方向API从纽约到波士顿获取路线。我有50个不同的经纬度来在地图上绘制折线。之后,我需要获取沿途可以参观的地方。
Google方向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、标题、类型id、服务id、纬度、经度、状态、城市、邮政编码和地址, (3959 * acos(cos(radians(31.72723)) * cos(radians(latitude)) * cos(radians(longitude) - radians(-106.3047)) + sin( radians(31.72723)) * sin(radians(latitude)))) AS distance from places距离<=10 order by distance ASC限制10
但是,如果这次旅行是从纽约到旧金山,我将有800个点,我需要对数据库进行800次查询,总共需要超过2秒的时间。而且我有7个不同的表格,需要14秒。
如果要怎么做才最好呢?