Сравнивая широту и долготу - PullRequest
       37

Сравнивая широту и долготу

0 голосов
/ 28 сентября 2011

В своем приложении для iPad я рисую один прямоугольник на карте, используя оверлей.У меня есть широта / длина одного ребра, а также длина и ширина прямоугольника.
У меня есть некоторые другие широта / длина, поступающие из базы данных.

Теперь, как я могу узнать, какой широта и длина из базы данных находится внутрипрямоугольник?

Спасибо,

Ответы [ 3 ]

3 голосов
/ 08 октября 2011

решаемая.

прежде всего конвертируйте четыре латлона в точку, используя этот метод:

CGPoint point = [mapView convertCoordinate:location toPointToView:overlayView];

тогда вы должны применить метод точки в поли .

2 голосов
/ 28 сентября 2011

Вы можете вычислить Расстояние, и если Расстояние больше, чем текущий Lat-Long, то оно находится снаружи, иначе оно находится внутри круга. Вы можете рассчитать расстояние, используя следующие строки.

CLLocation *location1 = [[CLLocation alloc] initWithLatitude:lat1 longitude:long1];

CLLocation *location2 = [[CLLocation alloc] initWithLatitude:lat2 longitude:long2];

NSLog(@"Distance i meters: %f", [location1 getDistanceFrom:location2]);

[location1 release];

[location2 release];
0 голосов
/ 28 сентября 2011

Попробуйте это

Пожалуйста, используйте код ниже, чтобы получить широту и длину для точки касания.

CGRect r = mapView.bounds;

    float longitudePercent = overlay.point.x / r.size.width;
    float latitudePercent = overlay.point.y / r.size.height;

    CLLocationCoordinate2D coord = mapView.centerCoordinate;
    MKCoordinateSpan span = mapView.region.span;

    float lat = coord.latitude + (span.latitudeDelta/2);
    float lon = coord.longitude - (span.longitudeDelta/2);

Просто добавьте длину и ширину вашего прямоугольника в overlay.point.x и overlay.point.y и получите другие значения lat и long.

после получения всех 4-х лат и длинных сделайте SQL-запрос к базе данных и получите соответствующие результаты для этого.

...