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