2015-07-10 63 views
-1

我是ROR和谷歌地圖的新手。我需要在Google地圖中放置一些位置標記(在數據庫中包含緯度和經度)。谷歌地圖與一些距離放置位置

問題是我需要選擇一些隨機距離的點。

總之,我需要選擇位置並將其放置在地圖中,該地圖必須與每個點具有100米的距離。

如果位置在任何其他點的100米範圍內,可以忽略。我需要從數據庫中放置10個點。

有什麼方法嗎?

+0

請讓我澄清一下:你有一個數據庫,大約有50到100個點,聚集在一個相對較小的地理區域。您正在試圖找出10個距離數據庫中所有其他點100米以外的點,或10個所選點的點數? – bcdan

+0

@bcdan,..對不起,延遲...這是10選定點 – m2j

回答

1

假設你需要找到從你的數據庫是遠離在數據庫中的所有其他點在至少100米幾點:

這是一個相當簡單的問題。它可以被視爲一個nxn矩陣,點設置爲行和列。在Python中,比較所有距離將如下所示:

selected = [] 
for pt1 in pts: 
    inRange = True 
    for pt2 in pts: 
    if pt1.distanceTo(pt2) < 100: 
     inRange = False 
     break 
    if inRange: 
    selected.append(pt1) 

此函數遍歷整個點列表。對於每個點,它檢查從當前點到所有其他點的距離。如果所有其他點都在100米以外,則將該點添加到數組中。

對於距離公式,請參見代碼形式的haversine公式here

既然你沒有在你的問題中指定一種語言,我會讓你把它翻譯成你需要的任何語言。這只是僞代碼,因爲沒有提供足夠的細節來用實際的代碼來回答你的問題。另外,如果我誤解了你的問題,你可以以某種方式修改這個算法。這只是提供一些想法。

+0

謝謝..你是男人 – m2j