我正在制作位置感知应用程序。我在服务器上有XML文件,其中包含具有纬度和经度坐标的不同商店的信息。 现在在我的应用程序中,我可以获得当前的纬度和经度坐标,也可以解析XML文件。
但是如何根据XML文件中的当前坐标找出最近的商店?
如果我们使用谷歌Api,它会根据查询返回包含最近位置的xml文件。但在我的情况下我在服务器上使用xml文件。
请建议
答案 0 :(得分:3)
我认为你最好将数据转换为数据库格式(sqlite / mysql),以便用户可以提交他们的lat / Lng点并获得正确的项目返回...否则你需要每次解析并比较整个文件...但是,您仍然可以使用该公式(它实际上只是将比较步骤转移到数据库查询而不是在您的应用程序中)
编辑:这是一个实现hasrsine并返回x结果的SQL查询示例:MySQL Great Circle Distance (Haversine formula)
答案 1 :(得分: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。
希望这有帮助。