Поддержка языков ILGeoNames

#ios #objective-c #geocoding #geonames

#iOS #objective-c #геокодирование #геонимы

Вопрос:

Я использую ILGeoNames в качестве службы геокодирования для поиска стран, но, похоже, она не поддерживает несколько языков, мне нужно локализовать результат поиска в соответствии с выбранным языком, т. Е. арабским, французским, турецким и т.д. … есть ли способ сделать это с ILGeoNames ? если нет, есть ли другая служба геокодирования objective c, которая это делает? заранее спасибо.

Ответ №1:

В ILGeoNamesLookup.m у вас есть эта функция

 - (void)search:(NSString*)query maxRows:(NSInteger)maxRows startRow:(NSUInteger)startRow language:(NSString*)langCode {
    NSString    *urlString;

    // Sanitize parameters
    if(!langCode) {
        NSBundle *bundle = [NSBundle bundleForClass:[self class]];
        NSArray *localizations = [bundle preferredLocalizations];
        if([localizations count])
            langCode = [localizations objectAtIndex:0];
        else
            langCode = @"en";
    }
    if(maxRows > 1000)
        maxRows = 1000;

    // Request formatted according to http://www.geonames.org/export/geonames-search.html
    NSString *escQuery = [query stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    urlString = [NSString stringWithFormat:kILGeoNamesSearchURL, escQuery, maxRows, startRow, langCode, userID];
    [self sendRequestWithURLString:urlString];
}
  

Если вы введете параметр langCode, поиск вернется на выбранном вами языке. Я пробовал с «es», и он работает нормально.

Приветствия