MySQL - 存储坐标以避免重复


MySQL - Store coordinates to avoid duplicates

我正在尝试构建像Instagram这样的位置标签...

我根据谷歌 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 ApiMapKit会返回不同的坐标。

现在我正在存储位置的name以检查重复项。这可能可行,但也许有更好的方法:)

所以我的问题是

  • 如何存储坐标以避免尽可能少的重复。也许有一个像"place_id"(在谷歌API中)这样的标识符,在使用Google Api或MapKit时可以同时适用于这两种情况
  • 我真的需要存储位置的名称吗,Instagram 是否使用任何 API 来获取有关位置的详细信息?

谢谢:)

解决方案实际上在于如何实现自己的数据库 - 任何给定的纬度/液化天然气坐标只有一个位置。但你不能强迫谷歌或MapKit改变。因此,您将始终陷入这种差异,并且搜索可能的文本值 name=like '%placename%' 将始终是低性能的,并且不能保证像您正确关注的那样准确。因此,我建议您为Google和MapKit创建单独的"位置"表,并让用户从GUI中过滤它们。还建议为每个柱子索引纬度和液化天然气列。