我正在尝试开发一个Android程序,找到最近医院的位置而不使用互联网。相反,我希望它在Android设备上使用存储的地图。这可行吗?如果是这样,有人可以向我推荐代码吗?
我成功开发了一个使用谷歌API的类似程序,这意味着它将联系服务器并使用互联网。我在this链接中重用了源代码。
但在某些情况下,我的用户可能无法访问互联网,因此迫切需要找到最近的医院。我该如何解决这个问题?
答案 0 :(得分:1)
另一个更简单的解决方案是将每个医院的坐标存储在一个文件中。 在App开始时,您将阅读该文件。
可能的文件格式:
Hospital Name, latitude, longitude, Adress Optional
然后使用CLLocation distanceTo()简单计算到所有医院的视线距离。然后按距离排序。
选择最短的。 虽然这不是道路距离,但只要中间没有河流或铁路,它就会起作用
答案 1 :(得分:0)
这绝对有可能。 您需要使用离线地图数据 - 您可以从OpenStreetMap项目获取地图数据。我建议让用户在安装初始应用程序后选择要下载的区域,然后数据将始终可用。
稍后,使用location API不需要互联网连接。您将获得坐标,您可以使用它来计算与其他坐标(医院......)的距离。
显然,您面临的挑战是创建一个硬编码的医院位置列表(尽管可以更新,确保应用程序可以在互联网出现时下载新列表,例如下载XML文件)。