Ну, во-первых, вы, прежде всего, 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 в значение, возвращаемое этим методом.