MySQL的 - 存储坐标避免重复
问题描述:
我试图建立类似Instagram的位置标记...MySQL的 - 存储坐标避免重复
我选择基于谷歌的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当您搜索特定位置时会返回不同的坐标。
现在我正在存储位置的name
以检查重复项。这可以工作,但也许有更好的方法:)
所以我的问题是:
- 我怎么可以存储坐标,以避免因为少重复越好。也许有一个像“place_id”(在谷歌API)这样的标识符可以适用于这两种情况下使用谷歌API或MapKit
- 我真的需要存储位置的名称,Instagram使用任何API来获取有关位置的详细信息?
谢谢:)
答
的解决方案确实是在如何实现自己的数据库 - 只有一个对于任何纬度/经度坐标指定位置。 但是你不能强迫Google或MapKit改变。因此你总是会被这种差异所困,并且对一个可能的文本值名称的搜索= like'%placename%'将永远是低性能的,并且不能保证你正确地关注它的准确性。 因此,我建议你为Google和MapKit创建单独的“位置”表,并让用户从GUI中过滤它们。 也建议为每个列索引lat和lng列。
性能明智,商店位置的名称或使用API?问题是如果我使用api,那么你需要将城市和公共场所分别存放在不同的行中,因为你永远不知道api会给你带来什么......注意:我还想考虑一些情况,比如说一家商店改变它的位置,然后我认为最好的方法是使用'name'来检查更改......谢谢:) – user6227254