假设我有一个存储lat / long值的数据库(例如商家的地理坐标)。现在,我希望用户能够搜索如下内容:
搜索洛杉矶的所有中国餐馆
有没有办法使用Google地图执行此操作?我会以某种方式通过所有的地理坐标吗?它将成千上万。
答案 0 :(得分:0)
谷歌地图API确实有视图port biasing和region code biasing来帮助搜索他们的数据库而不是你的数据库。
纬度和经度大致相当于地面上的距离(纬度和经度均为1度,约为69英里,有关详细信息,请参阅latitude和longitude的度数长度部分)。因此,如果您将纬度和经度存储在单独的列中,并且如果您可以将洛杉矶解析为纬度/经度(可能是使用Google的reverse geocoding),那么您的代码会执行简单的查询以返回只有距离洛杉矶纬度/经度大约距离的商家。
这将返回以洛杉矶 lat / long为中心的方形(或矩形,但不是圆形)内的结果。方形角落内的任何结果都将大于远离洛杉矶纬度/经度的选定近似距离。
答案 1 :(得分:0)
如果您要求向我显示半径内的所有结果,或者在边界框内显示所有结果,那么只有查询的中心点时才会遇到SQL查询问题。
如果你想找到一个城市中的所有地方,那么也许你可以简单地在你的数据库中的一个字段上使用你的SQL查询过滤器。
select title from restaurants where city = "Los Angeles";
或者如果您有准确的邮政编码保险:
select title from restaurants where postal_code like "<ZIP-STARt>%";
如果您没有100%的邮政编码覆盖率,请考虑运行一次性地理编码练习以恢复邮政编码。
(我承认无知邮政编码与美国城市的关系)