我是iOS上的一个应用程序,它具有Trip Planner。 例如,我使用google方向API获取从纽约到波士顿的路线。 我有50个不同的纬度经度在地图上制作折线。 之后,我需要获得这条路线上的地点,我可以在去波士顿的途中参观。如何通过lat long来实现高效的多搜索点
谷歌路线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,标题,TYPE_ID,service_id为,北纬,经度,州,城市,邮编,地址, (3959 * ACOS(COS(弧度(31.72723))* COS(弧度(纬度))* COS(弧度(经度) - 弧度(-106.3047))+罪( 弧度(31.72723))* sin(弧度(纬度))) )作为一个距离ASC限额由 地方距离< = 10阶距离10
但是,如果从纽约到旧金山的这次旅行中,我将有800分,我会做800查询数据库,需要更多的总共超过2秒。我有7个不同的表,这将是14秒。
什么是最好的,如果做的?
数据库内多少点?在总 – 2013-02-20 06:39:24
7表有80K地方 – 2013-02-20 06:40:06
你需要做的地方在DB更organized..may是通过运行K-均值聚类和将它们分成不同clusters..then而不是搜索每个可以通过每个群集搜索的地方..大小的集群..应该取决于水平的缩放.. – Shivam 2013-02-20 06:52:51