php - MySQL - 存储坐标以避免重复

标签 php mysql google-maps mapkit instagram

我正在尝试构建像 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 ApiMapKit 返回不同的坐标。

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

所以我的问题是:

  • 如何存储坐标以避免尽可能少的重复。也许有一个像“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/

相关文章:

php - 为什么 MySQLi 准备了语句?

php - 如何减少 Symfony2 中的代码重复

MySql:如何使用动态选择语句创建临时表?

javascript - 谷歌地图圆圈与标签

javascript - 谷歌地图顶部的路线多边形

ios - 为什么我的 'didTap marker' 函数不起作用?

将默认值设置为对象的PHP函数

php - CSS 如何链接到 <head>

mysql - 我无法在 ubuntu 上使用 ndb 集群引擎创建表

php - 为什么我的 MySQL 日期在 PHP 中显示为空白?