2011-07-12 26 views
1

我正在使用Route-Me項目處理iPhone應用程序。 我正在使用一種名爲'latitudeLongitudeBoundingBoxForScreen'的方法,它返回一組兩個cooördinates。定義屏幕經緯度的東北角和西南角。這似乎工作正常。查找給定位置(lat,lon)是否在兩個座標(route-me)的BoundingBox內

我的問題是我如何確定一個給定的點(lat/lon)是否在這兩個座標(東北,西南)的邊界內?

非常感謝您的幫助。

回答

2

對於多邊形中的一般點,Point Inclusion Test似乎在假設一個平凡的Equirectanglular投影(x = lon,y = lat)時有效。

既然你知道東北和西南,你可以計算出西北角和東南角。此外,請記住,您的邊界多邊形(方框)必須遵循一個繞組約定(您不能在點包含測試中拋出點)。

如果邊界框穿過180 lon行,這將會中斷。簡單的解決方法是,如果橫跨180 lon行的方框是將360添加到負經度。這不是一個有效的導航點,但它使數學工作。

這也不會在兩極工作。

+0

要處理極點,您只需檢查超過MAX_LAT或MIN_LAT的緯度。 – Travis

+0

圍繞極點的問題是等矩形投影。想象一下圍繞地球上一根杆子的方形。現在將該邊框投影到平面地圖上。對於兩極,我會改變投影,集中在兩極。 – TreyA

+0

我明白你的意思了。這只是一個特殊情況,如果數據接近這些區域,則必須處理。這對於計算來說肯定是值得注意的,因爲cos(lat)在極點是0,並且你想遠離div/0。 – Travis

相關問題