Форум программистов, компьютерный форум CyberForum.ru

MapKit построение маршрута - Программирование iOS

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование iOS Внедряем Google Maps в приложение для iOS 6.0 http://www.cyberforum.ru/ios-dev/thread938374.html
Начиная с версии iOS 6.0 Apple убрали Google Maps из базового набора приложений. Стандартный MapKit тоже был полностью переделан и адаптирован для работы с новым картографическим сервисом Apple. Но решение есть! Узнай об особенностях внедрения Google Maps в приложение для iOS 6.0 http://stfalcon.com/blog/post/gmaps-and-ios6#more
Программирование iOS Значения из dictionary Помогите. Все делаю по уроку в книге "пайлон д пайлон т программируем для iphone и ipad" . Все делаю как там. Работа со словарями (глава 5), приложение работает, запускается, но во втором представлении все поля пустые, хотя ключи указал. На первом контролере надписи к ячейкам страницы отображаются правильно. Получается дальше первого контролера, значения dictionary (ключи) не используются Как... http://www.cyberforum.ru/ios-dev/thread938232.html
Программирование iOS Взаимосвязь между ViewControll ерами
Знаю, вопрос наверное часто возникает. Приложение с анкетными данными. На главном UITableView Controll имеется список сотрудников (имя и фамилия). При клике, происходит переход на View Controll. На контролере отображается список полей (статические ячейки) необходимых для заполнения, при выборе той или другой ячейки открывается соответствующее представление (View Controll), для ввода ФИО, даты...
Проверка текста регулярными выражениями Программирование iOS
Как реализовать проверку текста используя регулярные выражения? Для проверки например, того же email
Программирование iOS Ошибка при Static Cells http://www.cyberforum.ru/ios-dev/thread937053.html
При попытке создания групп табличных полей (секций) в storyboard, использую статические ячейки. Ставлю значение Content в значение Static Cells, появляется ошибка "Illegal configuration. Static table view are only valid when embedded in UITableController instances" Почему нельзя использовать статические ячейки?
Программирование iOS Вызов функции из MKStoreManager Привет, ребята. У меня такая аномалия. Вот код: if() { setBool:YES forKey:@"is1Monster"]; ; synchronize]; } if() { ; подробнее

Показать сообщение отдельно
Pro2005
44 / 44 / 3
Регистрация: 27.05.2013
Сообщений: 163

MapKit построение маршрута - Программирование iOS

16.08.2013, 11:05. Просмотров 1484. Ответов 2
Метки (Все метки)

Hi, подскажите возможно как-то прикрутить построение маршрутов ?
Я пробывал исп google для получения координат, но при выводе маршрута он был не точен (чем больше расстояние - тем меньше точность).

Добавлено через 30 минут
Сам задал, сам ответил....
Проблема заключалась в том что когда я парсил результат от google directions
Пример одного из step:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
distance =                             {
                                text = "87 m";
                                value = 87;
                            };
                            duration =                             {
                                text = "1 min";
                                value = 12;
                            };
                            "end_location" =                             {
                                lat = "47.9910939";
                                lng = "37.7981615";
                            };
                            "html_instructions" = "Continue onto <b>\U043f\U0440\U043e\U0441\U043f. \U041f\U0430\U0432\U0448\U0438\U0445 \U041a\U043e\U043c\U043c\U0443\U043d\U0430\U0440\U043e\U0432/\U043f\U0440\U043e\U0441\U043f. \U041f\U043e\U043b\U0435\U0433\U043b\U0438\U0445 \U041a\U043e\U043c\U0443\U043d\U0430\U0440\U0456\U0432</b>";
                            polyline =                             {
                                points = "af|cHofueF[qBI{@Aq@";
                            };
                            "start_location" =                             {
                                lat = "47.990894";
                                lng = "37.797035";
                            };
                            "travel_mode" = DRIVING;
я брал координаты точек из end_location и start_location... точек выдавало довольно мало - маршрут был ОЧЕНЬ не точен и "съезжал" с дорог. Для более точного построения маршрутов требуется использовать значения polyline. Для декодирования исп готовую категорию

Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
@implementation MKPolyline (MKPolyline_EncodedString)
 
+ (MKPolyline *)polylineWithEncodedString:(NSString *)encodedString {
    const char *bytes = [encodedString UTF8String];
    NSUInteger length = [encodedString lengthOfBytesUsingEncoding:NSUTF8StringEncoding];
    NSUInteger idx = 0;
 
    NSUInteger count = length / 4;
    CLLocationCoordinate2D *coords = calloc(count, sizeof(CLLocationCoordinate2D));
    NSUInteger coordIdx = 0;
 
    float latitude = 0;
    float longitude = 0;
    while (idx < length) {
        char byte = 0;
        int res = 0;
        char shift = 0;
 
        do {
            byte = bytes[idx++] - 63;
            res |= (byte & 0x1F) << shift;
            shift += 5;
        } while (byte >= 0x20);
 
        float deltaLat = ((res & 1) ? ~(res >> 1) : (res >> 1));
        latitude += deltaLat;
 
        shift = 0;
        res = 0;
 
        do {
            byte = bytes[idx++] - 0x3F;
            res |= (byte & 0x1F) << shift;
            shift += 5;
        } while (byte >= 0x20);
 
        float deltaLon = ((res & 1) ? ~(res >> 1) : (res >> 1));
        longitude += deltaLon;
 
        float finalLat = latitude * 1E-5;
        float finalLon = longitude * 1E-5;
 
        CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(finalLat, finalLon);
        coords[coordIdx++] = coord;
 
        if (coordIdx == count) {
            NSUInteger newCount = count + 10;
            coords = realloc(coords, newCount * sizeof(CLLocationCoordinate2D));
            count = newCount;
        }
    }
 
    MKPolyline *polyline = [MKPolyline polylineWithCoordinates:coords count:coordIdx];
    free(coords);
 
    return polyline;
}
 
@end
Может кому нибудь поможет...
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru