1

我正在制作位置感知应用程序。我在服务器上有 XML 文件,其中包含不同商店的经纬度坐标信息。现在在我的应用程序中,我可以获得当前的纬度和经度坐标,并且还可以解析 XML 文件。

但是我怎样才能根据 XML 文件中的当前坐标找出最近的商店?

如果我们使用 google Api,它会根据查询返回包含最近位置的 xml 文件。但在我的情况下,我在服务器上使用 xml 文件。

请建议

4

2 回答 2

3

我认为您最好将数据转换为数据库格式(sqlite/mysql),以便用户可以提交他们的 lat/Lng 点并返回正确的项目...否则您需要解析和比较每次整个文件...但是,您仍然可以使用该公式(实际上只是将比较步骤转移到数据库查询而不是在您的应用程序中)

编辑:这有一个实现 hasrsine 并返回 x 结果的 SQL 查询示例:MySQL Great Circle Distance (Haversine formula)

于 2011-08-13T14:27:30.060 回答
2

这是计算地球上两点之间距离的半正弦公式:

a = sin²(Δlat/2) + cos(lat1)*cos(lat2)*sin²(Δlong/2);
c = 2*atan2(√a, √(1−a));
d = R*c;

您可以轻松地在 obj-c 中调整它。

请注意:R 为地球半径 = 6,371km;

所以只需计算两个点的纬度和经度差,并据此计算d。

希望这可以帮助。

于 2011-08-13T14:15:08.560 回答