如何使用 GPS 信息搜索数据库?

Posted

技术标签:

【中文标题】如何使用 GPS 信息搜索数据库?【英文标题】:How to search a database using GPS information? 【发布时间】:2014-09-05 22:05:43 【问题描述】:

我正在收集企业列表,并使用该信息收集街道地址、城市、州、邮编等。我想构建一个可以接受地址搜索输入或使用设备/浏览器的应用程序GPS 或 IP 生成一个,然后在我的数据库中查找特定地理范围内的企业。

我的问题是如何 (a) 创建或访问可用于搜索的地理数据数据库,以及 (b) 如何以限制(例如,英里)的方式存储数据?所以我可以说“这些企业离你不到 30 英里,而你离这家企业只有 2.8 英里”。

我知道 Google Maps 提供了一个 API,但通过阅读文档,我似乎必须在地图上显示该数据,而这并不真正在我想要做的范围内。我想以列表的形式呈现这些数据。

编辑:

因此,我需要 lat/long 和一些计算的终止。我如何将地址写为“密苏里州堪萨斯城任何街道 123”并将其转换为我可以存储的 LAT LONG?

【问题讨论】:

你不存储“距离”。您存储纬度/经度,然后即时计算距离:select id, .... where distance_calc($user_lat, $user_long) < $limit 将您的邮政编码转换为坐标,然后使用毕达哥拉斯定理确定与当前点的距离。 Marc B,太好了,太棒了。我已经编辑了这个问题并进行了一些跟进,但我也会在这里问。如何获取用户的地址并将其转换为纬度/经度,以便能够将其存储在数据库中? 【参考方案1】:

如果你愿意去微软 SQL Server,他们在 SQL 2008 中引入了geography 列类型。有内置的数据库操作可以从纬度/经度查找这些数据

见http://msdn.microsoft.com/en-us/library/cc280766.aspx

否则,当您将地址或其他类型的数据输入数据库时​​,您需要做的是对其进行地理定位,可能使用外部映射 API,例如http://api.mygeoposition.com/geopicker/

【讨论】:

以上是关于如何使用 GPS 信息搜索数据库?的主要内容,如果未能解决你的问题,请参考以下文章

Python读取安卓手机GPS信息

如何呈现gps定位模块获得定位信息

如何获取最近城市的名称

如何使用数据库(mysql)中的gps位置在两个地理点之间找到pople?

当我们在室内使用安卓手机时,如何快速获取经纬度或 GPS 数据?

Waze 等应用程序如何以编程方式打开 GPS? [复制]