Получить направление движения в iPhone - PullRequest
1 голос
/ 22 августа 2010

Я прочитал лицензионное соглашение для iPhone и Google Map для iPhone и хочу реализовать статическую карту направления движения в своем приложении для iPhone (нативно).

Я нахожу простой способ получения данных о маршруте и его отображения с помощью встроенной функции отображения маршрута в iOS 4 SDK 'Mapkit.

Есть ли программист, реализующий такую ​​функцию с помощью Google Map и Bing Map? Поскольку Bing Map предоставляет данные маршрутизации в веб-сервисе SOAP, программирование направления движения с помощью сервиса Bing кажется более простым.

1 Ответ

1 голос
/ 24 августа 2010

Я нашел решение для этого.Просто используйте анализатор JSON, чтобы получить API Google Map

Например:

NSDictionary *testJsondata = [self testJson:GoogleMapXMLDirectionQueryString];
    NSLog(@"Here is the title of the response: %@", [testJsondata valueForKey:@"status"]);

    for (id key in testJsondata) {

        NSLog(@"key: %@, value: %@", key, [testJsondata objectForKey:key]);

    }
}

- (NSDictionary *) testJson : (NSString*) url
{
    id response = [self objectWithUrl:[NSURL URLWithString:url]];

    NSDictionary *feed = (NSDictionary *)response;
    return feed;
}

- (id) objectWithUrl:(NSURL *)url
{
    SBJsonParser *jsonParser = [SBJsonParser new];
    NSString *jsonString = [self stringWithUrl:url];

    // Parse the JSON into an Object
    return [jsonParser objectWithString:jsonString error:NULL];
}

- (NSString *)stringWithUrl:(NSURL *)url
{
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url
                                                cachePolicy:NSURLRequestReturnCacheDataElseLoad
                                            timeoutInterval:30];
    // Fetch the JSON response
    NSData *urlData;
    NSURLResponse *response;
    NSError *error;

    // Make synchronous request
    urlData = [NSURLConnection sendSynchronousRequest:urlRequest
                                    returningResponse: &response
                                                error: &error];

    // Construct a String around the Data from the response
    return [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
}

- (NSString *)getDirectionInXML:(NSString *)GoogleMapXMLDirectionQueryString 
{
    NSError *error;
    NSURLResponse *response;
    NSData *dataReply;
    NSString *stringReply;

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: 
                                    [NSURL URLWithString: [NSString stringWithFormat:GoogleMapXMLDirectionQueryString]]];
    [request setHTTPMethod: @"GET"];
    dataReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    stringReply = [[NSString alloc] initWithData:dataReply encoding:NSUTF8StringEncoding];
    return stringReply;
}
...