mapbox / mapbox/MapboxGeocoder.swift

Expected fields do not always appear in the MBGeocodedPlacemark

Aberta
#167 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

bug
Linguagem predominante
Swift
Estrelas
133
Forks
46
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

Using v0.10.0.

If I reverse geocode a point in the water of the San Francisco Bay, "California" does not appear as an administrativeRegion on the MBGeocodedPlacemark. If I print the addressDictionary of the placemark, I see that the name is California, but it is not placed under the state key.

Sample code:

CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(37.763778227711242, -122.32790567148118);
MBGeocoder *geocoder = [[MBGeocoder alloc] initWithAccessToken:<token>];
MBReverseGeocodeOptions *options = [[MBReverseGeocodeOptions alloc] initWithCoordinate:coordinate];
[geocoder geocodeWithOptions:options completionHandler:^(NSArray<MBGeocodedPlacemark *> * _Nullable placemarks, NSString * _Nullable attribution, NSError * _Nullable error) {
        
    NSLog(@"%@", [placemarks[0] addressDictionary]);
      
}];

Output:

{
    ISOCountryCode = US;
    country = "United States";
    formattedAddressLines =     (
        "United States"
    );
    name = California;
}

This makes it challenging to properly format and display reverse geocode data that is powered by a dynamic location at run time. If I reverse geocode a location that has a street address, it likely has a state field.

Below is the addressDictionary of a reverse geocode coordinate in downtown San Francisco. The state is now there. (37.794291209161685, -122.412848997168)

{
    ISOCountryCode = US;
    city = "San Francisco";
    country = "United States";
    formattedAddressLines =     (
        "1187 Washington Street",
        "San Francisco",
        "California 94108",
        "United States"
    );
    name = "Washington Street";
    postalCode = 94108;
    state = California;
    street = "Washington Street";
    subAdministrativeArea = "San Francisco";
    subLocality = "Nob Hill";
    subThoroughfare = 1187;
    thoroughfare = "Washington Street";
}

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece pelo fluxo geocodeWithOptions:completionHandler: do MBGeocoder e pelo addressDictionary de MBGeocodedPlacemark mostrado no relatório. Compare as coordenadas de San Francisco Bay e do centro da cidade e, em seguida, verifique se as informações esperadas de administrativeRegion/state são expostas de forma consistente para placemarks geocodificados inversamente.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
objective-c, swift
Domínio
api, mobile-dev
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
38/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.