2014-06-30 80 views
-1

民俗,如何將地圖劃分爲給定半徑的圓?

我怎樣才能把一個狀態分成半徑50英里的區域呢?

也許有更好的方法來解決我的問題:我有一個700個位置的名單與獨特的城市名稱。一些城市相隔不足50英里。我需要將這份名單減少到不超過50英里以外的最少數量的地區,並且基本上覆蓋了列表中的附近城市。通過這種方式,我可以找到縮小列表中每個位置的中心半徑郵政編碼,然後搜索「50英里內的商店」,這應該返回全部700個位置。

更新:我有5000個產品和700個商店在不同的城市。我需要檢查所有產品的庫存。我查看的網站只顯示距離特定城市50英里以內的商店的庫存。這意味着我需要提出3,500,000個請求。因此,我正在尋找一種方法將700家商店減少到一個較小的數量。

+0

您不能將區域劃分爲沒有重疊或有間隙的圓圈。 – geocodezip

+0

所以你想要一組覆蓋所有700個位置的圓圈。你可以用一個規則的點陣來表示一個蜂窩狀的佈局。 –

+0

@Salixalba每個圈/任何形狀應該有1分。這個想法是儘可能少的點,但使用這些點來查詢50英里範圍內的所有點時,我會得到所有700點。重疊很好。 – MarkL

回答

1

一個簡單的算法,它可以工作,但遠非最佳。這將啓動與候選城市名單

  1. 隨機選擇一個鎮,周圍繪製點
  2. 一個圈子中刪除所有城鎮圈內
  3. 重複,直到沒有城鎮留下

您可以運行它幾次,以查看是否有一些運行產生的結果圈少得多。