【问题标题】:How to search a database using GPS information?如何使用 GPS 信息搜索数据库?
【发布时间】: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,太好了,太棒了。我已经编辑了这个问题并进行了一些跟进,但我也会在这里问。如何获取用户的地址并将其转换为纬度/经度,以便能够将其存储在数据库中?

标签: php mysql database gps geolocation


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-24
    • 1970-01-01
    相关资源
    最近更新 更多