內我有其中包含的用戶的當前位置CLLocation對象和我有4緯度/經度對用於可傾斜的矩形的每一個角。現在我想檢查CLLocation座標是否在該矩形內。IOS:緯度/經度矩形
以下是我已經嘗試了矩形
#define NorthEast_LAT 51.514894
#define NorthEast_LNG -0.135306
#define SouthEast_LAT 51.514831
#define SouthEast_LNG -0.135153
#define NorthWest_LAT 51.514719
#define NorthWest_LNG -0.135858
#define SouthWest_LAT 51.514556
#define SouthWest_LNG -0.135714
的下面的代碼座標,但是我認爲,當矩形的角度爲0度時纔會有效。
BOOL withinRect = [delegate.CLController latlngWithInBox:location
point1:CLLocationCoordinate2DMake(NorthEast_LAT, NorthEast_LNG)
point2:CLLocationCoordinate2DMake(SouthEast_LAT, SouthEast_LNG)
point3:CLLocationCoordinate2DMake(NorthWest_LAT, NorthWest_LNG)
point4:CLLocationCoordinate2DMake(SouthWest_LAT, SouthWest_LNG)];
- (BOOL) latlngWithInBox:(CLLocation *)position point1:(CLLocationCoordinate2D)point1 point2:(CLLocationCoordinate2D)point2 point3:(CLLocationCoordinate2D)point3 point4:(CLLocationCoordinate2D)point4 {
if (position.coordinate.latitude >= point3.latitude && position.coordinate.latitude <= point2.latitude
&& position.coordinate.longitude >= point3.longitude && position.coordinate.longitude <= point2.longitude) {
return YES;
}
return NO;
}
Ewwww ......一個建議是使用'CLLocationCoordinate2D'代替NSNumbers陣列第一。將使你的代碼更容易理解。另外,你不要考慮'point1'和'point2'。 – DarkDust
是的,我應該改變代碼通過CLLocationCoordinate2D代替陣列 –
代碼改變... –