2011-07-07 82 views
0

有沒有辦法確定哪些國家是由google.maps.Circle創建的圈覆蓋?也許使用反向地理編碼和getBounds或包含? Google是否提供了一種方法來執行此操作(使用地理編碼器或其他方法),還是必須使用經度和緯度點數據庫?谷歌地圖v3確定哪些國家是在圈覆蓋的邊界

回答

1

在Google Maps API中似乎沒有簡單的方法來做到這一點。

您可以使用getBounds()來獲得近似於圓的LatLngBounds對象。請注意,getBounds()將返回一個近似於圓的矩形,因此可能會得到不準確的結果。爲了更準確地做到這一點,您需要計算一束點,以使用Haversine公式和圓心的中心和半徑相結合來近似圓。您計算的點越多,近似值越準確。

一旦你有了你的設定點,你還沒有完全擺脫困境。似乎沒有辦法使用Google的Geocoder API返回LatLngBounds中的所有狀態。因此,您必須計算邊界內的更多點數,併爲它們發送單獨的反向地理編碼請求。而你仍然可能會錯過一兩個狀態。總的來說,你好。

另一種方法,對我來說似乎沒那麼吸引人,但是誰知道:對於每個狀態,獲取一組矩形邊界的經緯度數據,當所有的矩形邊界合併在一起時,州。對於每個州,請使用intersects()查看它是否與您的圈子相交。

根據您的使用情況,可能還有其他可能性,涉及Google Maps API或其他技術。