2016-04-26 84 views
0

我試圖建立類似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 ApiMapKit當您搜索特定位置時會返回不同的座標。

現在我正在存儲位置的name以檢查重複項。這可以工作,但也許有更好的方法:)

所以我的問題是

  • 我怎麼可以存儲座標,以避免因爲少重複越好。也許有一個像「place_id」(在谷歌API)這樣的標識符可以適用於這兩種情況下使用谷歌API或MapKit
  • 我真的需要存儲位置的名稱,Instagram使用任何API來獲取有關位置的詳細信息?

謝謝:)

回答

0

的解決方案確實是在如何實現自己的數據庫 - 只有一個對於任何緯度/經度座標指定位置。 但是你不能強迫Google或MapKit改變。因此你總是會被這種差異所困,並且對一個可能的文本值名稱的搜索= like'%placename%'將永遠是低性能的,並且不能保證你正確地關注它的準確性。 因此,我建議你爲Google和MapKit創建單獨的「位置」表,並讓用戶從GUI中過濾它們。 也建議爲每個列索引lat和lng列。

+0

性能明智,商店位置的名稱或使用API​​?問題是如果我使用api,那麼你需要將城市和公共場所分別存放在不同的行中,因爲你永遠不知道api會給你帶來什麼......注意:我還想考慮一些情況,比如說一家商店改變它的位置,然後我認爲最好的方法是使用'name'來檢查更改......謝謝:) – user6227254