Как получить левый верхний CLLocationCoordinate2D из массива MKPointAnnotation - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь получить координату верхнего левого угла (North East в форме CLLocationCoordinate2D) из массива MKPointAnnotation. Моя координатная геометрия немного слаба. Я написал два метода, но теперь я запутался, какой из них правильный. Это может быть повторный вопрос (я не смог найти конкретный вопрос), любая помощь будет признательна.

1-й код

- (CLLocationCoordinate2D)topLeftCoordinate {
    double minLon = 180;
    double minLat = 90;

    for (MKPointAnnotation *annotation in annotations) {
        MKPointAnnotation *coordinate = annotation.coordinate;

        minLat = MIN(coordinate.latitude, minLat);
        minLon = MIN(coordinate.longitude, minLon);
    }

    return CLLocationCoordinate2DMake(minLat, minLon);
}

2-й Код

- (CLLocationCoordinate2D)topLeftCoordinate {
    double maxLat = -90;
    double minLon = 180;

    for (MKPointAnnotation *annotation in annotations) {
        MKPointAnnotation *coordinate = annotation.coordinate;

        maxLat = MAX(coordinate.latitude, maxLat);
        minLon = MIN(coordinate.longitude, minLon);
    }

    return CLLocationCoordinate2DMake(maxLat, minLon);
}

Представьте, что у нас есть эти две координаты (широта, длинна) -> (-34, -54) и (34; -54), поэтому с 1-й код точка будет (-34; -54) с 2-й код метод вернет (34, -54), какой из них является правильным topLeftCoordinate? Я считаю (-34; -54) произведенным 1st Code правильно. Пожалуйста, поправьте меня, если я ошибаюсь.

...