2

Bing 或 Google Maps 是否可以让您传入一个点集合,然后询问该集合以仅绘制 X 个最近的点?

我之所以问,是因为预过滤这些数据可能很困难,并且提供整个列表并在 API 本身中过滤它会更简单。

4

2 回答 2

0

我只是在为我收到的客户请求做这件事。据我所知,最好的方法是在输入地址时使用谷歌(或类似的)对您的地址进行地理编码(即将邮政地址转换为纬度和经度)

当您来“找到我最近的人”时,您将希望获得搜索者的邮政编码(可能)然后对其进行地理编码,或者如果您能够直接从手机中获取数据,则可能需要一个经纬度设备。

一旦你有了固定位置的经纬度,并且你的用户也一样,我认为你可以使用半正弦公式(我这么说,但我实际上没有尝试过 - 我不是数学家)这是一个计算球体周围两点之间距离的数学方法。地球不是一个球体,但足够接近这种目的。

这样,您只需对外部服务进行一次查找即可找到您的用户位置(假设您在创建固定点时对它们进行了地理编码,并将它们存储起来以备后用),然后在服务器端进行驴工作来计算距离。您甚至可以创建一个自定义 SQL 函数来按顺序将其直接从数据库中提取出来。

于 2011-04-12T16:54:15.300 回答
0

您必须自己完成大部分工作,API 不会为您完成所有功能。

但是,我知道您可以使用 Google Maps API 找到两点之间的距离。查看API 参考distanceFrom中的方法。只需计算 XML 文件中每个点的距离,然后取最小的 X 数。

关于您的评论-是的,我想在客户端循环浏览 300 个项目可能有点多。一种解决方案是将每个点的 GPS 坐标存储在您的 XML 文件中(如果还没有的话),然后创建一个函数,使用简单的距离计算器修剪掉大部分点(您必须自己研究)。然后将剩余的点(可能是 30 个)传入 API 以计算更准确的距离。

于 2010-03-09T18:01:25.243 回答