我正在尝试构建像 Instagram 一样的位置标签...
我根据 Google Api 函数 getBounds()
选择坐标,如下所示:
(注:swlat、swlng、nwlat、nwlng = a、b、c、d)
SELECT * FROM table WHERE
(a < c AND lat BETWEEN a AND c) OR (c < a AND lat BETWEEN c AND a)
AND
(b < d AND lng BETWEEN b AND d) OR (d < b AND lng BETWEEN d AND b)
在插入坐标之前,我会检查数据是否存在于表中以避免重复。但问题是,当您搜索特定地点时,Google Api 和 MapKit 返回不同的坐标。
现在我正在存储位置的名称
以检查重复项。这可能可行,但也许有更好的方法:)
所以我的问题是:
- 如何存储坐标以避免尽可能少的重复。也许有一个像“place_id”(在 google API 中)这样的标识符在使用 Google Api 或 MapKit 时适用于这两种情况
- 我真的需要存储位置名称吗?Instagram 是否使用任何 API 来获取有关位置的详细信息?
谢谢:)
最佳答案
解决方案实际上在于如何实现自己的数据库 - 任何给定的纬度/经度坐标只有一个位置。 但你不能强制 Google 或 MapKit 改变。因此,您将始终陷入这种差异,并且对可能的文本值 name=like '%placename%' 的搜索性能始终很低,并且不能保证像您所担心的那样准确。 因此,我建议您为 Google 和 MapKit 创建单独的“位置”表,并让用户从 GUI 中过滤它们。 还建议为每个列索引 lat 和 lng 列。
关于php - MySQL - 存储坐标以避免重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36874118/