0

経度と緯度の住所のリストを取得する方法を誰かが知っているかどうか疑問に思っていましたか?

次のコードを使用してきましたが、常に 1 つのアドレスが生成されます。

[self.geocoder reverseGeocodeLocation: currentLocation  completionHandler:
 ^(NSArray *placemarks, NSError *error) {
     for (int i = 0; i < placemarks.count; i++)
     {
         CLPlacemark *placemark = [placemarks objectAtIndex:i];
         if (placemark.addressDictionary != nil)
         {
             Location *aLocation = [[Location alloc] init];
             aLocation.locationName = [placemark.addressDictionary valueForKey:@"Name"];
             aLocation.locationAddress = [placemark.addressDictionary valueForKey:@"City"];
             aLocation.currentLocation = placemark.location;
             [self.tableData addObject:aLocation];
         }
     }
    [self.locationsTableView reloadData];
 }];
4

2 に答える 2

0

Core Location のジオコーディングがそれを意図しているかどうかはわかりません。

Google はこの種の検索を許可していますが、Places API には制限があります。そうは言っても、「ピザ」などを検索すると、半径内で結果が得られます。

詳細については、https ://developers.google.com/places/documentation/ をご覧ください。

API を使用して、検索クエリと半径を使用して緯度/経度に基づいてクエリを実行し、目的のような結果を取得できます。

幸運を!

于 2013-03-12T15:17:27.423 に答える
0

最初に緯度と経度の値を変更します (コードが正しいことを確認してください)。

以下は、一部の座標が完全な情報を提供しない場合のコードを提供し、特定の CITY(または他の Infor ) 名を取得するための条件をどのように与えることができるかを示しています。
ここでgetReverseGeocode メソッド呼び出し[self getReverseGeocode];

- (void) getReverseGeocode
    {
        CLGeocoder *geocoder = [[CLGeocoder alloc] init];

        if(currentLatLong.count > 0)
        {
            CLLocationCoordinate2D myCoOrdinate;

            myCoOrdinate.latitude = LatValue;
            myCoOrdinate.longitude = LangValue;

            CLLocation *location = [[CLLocation alloc] initWithLatitude:myCoOrdinate.latitude longitude:myCoOrdinate.longitude];
            [geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error)
             {
                 if (error)
                 {
                     NSLog(@"failed with error: %@", error);
                     return;
                 }
                 if(placemarks.count > 0)
                 {
                     NSString *MyAddress = @"";
                     NSString *city = @"";

                     if([placemark.addressDictionary objectForKey:@"FormattedAddressLines"] != NULL)
                         MyAddress = [[placemark.addressDictionary objectForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "];
                     else
                         MyAddress = @"Address Not founded";

                     if([placemark.addressDictionary objectForKey:@"SubAdministrativeArea"] != NULL)
                         city = [placemark.addressDictionary objectForKey:@"SubAdministrativeArea"];
                     else if([placemark.addressDictionary objectForKey:@"City"] != NULL)
                         city = [placemark.addressDictionary objectForKey:@"City"];
                     else if([placemark.addressDictionary objectForKey:@"Country"] != NULL)
                         city = [placemark.addressDictionary objectForKey:@"Country"];
                     else
                         city = @"City Not founded";

                   NSLog(@"%@",city);
                   NSLog(@"%@", MyAddress);
                 }
             }];
        }
    }
于 2013-03-12T15:19:24.677 に答える