Расположение пользователя iOS CoreLocation в верхней части изображения - PullRequest
1 голос
/ 14 августа 2011

Я пытаюсь создать навигационное приложение для здания, подобное http://navigationapps.com/wp-content/uploads/2010/10/point-inside-2.png. Я планирую отобразить изображение плана здания в виде UIImageView и использовать CoreLocation, чтобы получить координаты долготы и широты для указателя булавки. Следующий шаг - на котором я тоже застрял, как мне нарисовать точку на изображении? - Я уже могу получить координаты лота и лота пользователей ..

1 Ответ

3 голосов
/ 15 августа 2011

Ну, во-первых, вы, прежде всего, UIImageView для отображения своего рода значка для указателя булавки, а затем функция для преобразования координат широты / долготы в позицию на вашем изображении.

Предполагается, что изображение плана этажа зданиявыровненный по северу вверху,

- (CGPoint)plotPointOfLocation:(CLLocationCoordinate2D)location {
    CLLocationCoordinate2D topLeftCoordinate = CLLocationCoordinate2DMake(/* the lat/long of the top-left of the plan image */);
    CLLocationCoordinate2D bottomRightCoordinate = CLLocationCoordinate2DMake(/* the lat/long of the bottom-right of the plan image */);
    CGSize planImageSize = CGSizeMake(/* the size of the plan image, as drawn on the screen, in pixels */);

    CLLocationDegrees latSpan = bottomRightCoordinate.latitude - topLeftCoordinate.latitude;
    CLLocationDegrees longSpan = bottomRightCoordinate.longitude - topLeftCoordinate.longitude;

    CLLocationCoordinate2D offsetLocation = CLLocationCoordinate2DMake(location.latitude - topLeftCoordinate.latitude,
                                                                       location.longitude - topLeftCoordinate.longitude);

    CGPoint ret = CGPointMake((offsetLocation.latitude / latSpan) * planImageSize.width,
                              (offsetLocation.longitude / longSpan) * planImageSize.height);
    return ret;
}

Затем просто установите свойство pin центра UIImageView в значение, возвращаемое этим методом.

...