1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xiao66guo-XGMapRelatedOperations

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 07:25 d84550d

XGMapRelatedOperations

Функции проекта:

  1. Отслеживание и определение местоположения пользователя.
  2. Реализация различных режимов отображения карт от компании «高德» («Gaode»).
  3. Увеличение и уменьшение масштаба карты с использованием координат широты и долготы и коэффициента масштабирования.
  4. Настройка пользовательских меток на карте.
  5. Возвращение к исходному местоположению пользователя в анимированном режиме.
  6. Переход в режим аэрофотосъёмки при нажатии кнопки «航拍».
  7. Интеграция функции распознавания речи «讯飞语音» для ввода данных пользователем (также поддерживается ручной ввод).
  8. Построение маршрута между текущим местоположением пользователя и введённым адресом при нажатии на кнопку «导航». Повторное нажатие на кнопки «导航» или «语音输入» стирает предыдущий маршрут.

Изменения: 9. Добавлена страница просмотра деталей маршрута и отображения расстояния.

2016/11/23

  1. Исправлен баг, возникавший при нажатии на кнопку уменьшения масштаба карты.

Код для построения навигационного маршрута:

-(void)startNav{

if (nil != _polyLineMutable) {
    [_map removeOverlays:_polyLineMutable];
    [_polyLineMutable removeAllObjects];
}
[_addressField resignFirstResponder];
MKDirectionsRequest *request = [[MKDirectionsRequest alloc] init];
request.source = [MKMapItem mapItemForCurrentLocation];
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:_addressField.text completionHandler:^(NSArray<clplacemark *=""> * _Nullable placemarks, NSError * _Nullable error) {

    if (placemarks.count == 0 || error) {
        return ;
    }
    CLPlacemark *clPm = placemarks.lastObject;
    MKPlacemark *pm = [[MKPlacemark alloc] initWithPlacemark:clPm];
    request.destination = [[MKMapItem alloc] initWithPlacemark:pm];
    MKDirections *direction = [[MKDirections alloc] initWithRequest:request];
    [direction calculateDirectionsWithCompletionHandler:^(MKDirectionsResponse * _Nullable response, NSError * _Nullable error) {
        for (MKRoute *route in response.routes) {
            for (MKRouteStep *step in route.steps) {
                NSLog(@"%@", step.instructions);
            }
            [_map addOverlay:route.polyline];
            [_polyLineMutable addObject:route.polyline];
        }
    }];
}];
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/xiao66guo-XGMapRelatedOperations.git
git@api.gitlife.ru:oschina-mirror/xiao66guo-XGMapRelatedOperations.git
oschina-mirror
xiao66guo-XGMapRelatedOperations
xiao66guo-XGMapRelatedOperations
master