Tag: clgeocoder

从我目前的位置获取最近的地点

我目前正在开发一个iOS的移动应用程序,其中包括一个部分,需要确定用户当前的位置和从当前的位置,我想find最近的位置。 有什么办法来实现这个? 我已经做了一些编码来find用户的当前位置。 这里是我的代码片段, CLGeocoder *geocoder = [[CLGeocoder alloc] init]; [geocoder reverseGeocodeLocation:locationManager.location completionHandler:^(NSArray *placemarks, NSError *error) { NSLog(@"reverseGeocodeLocation:completionHandler: Completion Handler called!"); if (error){ NSLog(@"Geocode failed with error: %@", error); return; } CLPlacemark *placemark = [placemarks objectAtIndex:0]; NSLog(@"placemarks=%@",[placemarks objectAtIndex:0]); 但我的问题是,我将如何获得最近的其他地点? 从我目前的位置,我已经提取。 提前致谢。

使用当前位置数据时,CLGeocoder返回城市和州的空结果

嗨,我想获得使用CLGeocoder城市和国家的名称。 但是,placemark.addressDictionary正在返回我: {FormattedAddressLines =(“南大西洋”); 名称=“南大西洋”; 海洋=“南大西洋”; } 并且地标是:南大西洋,南大西洋@ <-42.60533670,-21.93128480> +/- 100.00m,区域CLCircularRegion(标识符:“< – 41.51023865,-31.60774370>半径4958095.65',中心:< – 41.51023865,-31.60774370 >,半径:4958095.65米) 此外,[地标地点]和[地标pipe理区域]的NSLog都显示为零。 还尝试添加ABAdressBookUI,ABAdressBook框架并获取数据为: NSString * addressDict = ABCreateStringWithAddressDictionary(placemark.addressDictionary,NO); 它返回一个空描述的对象。 或者试过:NSString * state =(NSString *)[placemark.addressDictionary objectForKey:kABPersonAddressStateKey]; 它会抛出不兼容指针types的警告。 如果有任何可能的解决scheme或如果我失去了一些东西,请让我知道。 当前位置button被点击时,我的代码如下: CLLocation * loc; loc = [[CLLocation alloc] initWithLatitude:[KLocationManager sharedManager]._locationManager.location.coordinate.latitude longitude:[KLocationManager sharedManager]._locationManager.location.coordinate.longitude]; CLGeocoder* geocoder = [[CLGeocoder alloc] init]; [geocoder reverseGeocodeLocation:loc completionHandler:^(NSArray *placemarks, NSError […]

CLGeocoder reverseGeocodeLocation“kCLErrorDomain error 2”

我正在开发一个具有反向地理编码function的iOS应用程序。 当我第一次调用函数时,一切都很好。 第二次调用后(使用控制器的新实例进行调用)出现“Domain = kCLErrorDomain Code = 2”错误。 这发生在模拟器和设备上。 坐标是有效的。 我的代码: CLGeocoder *geoCoder = [[CLGeocoder alloc] init]; CLLocation *loc = [[CLLocation alloc] initWithLatitude:cityCoords.latitude longitude:cityCoords.longitude]; self.displayedCity = [[Stadt alloc] init]; [geoCoder reverseGeocodeLocation:loc completionHandler:^(NSArray *placemarks, NSError *error) { if(!error){ for (CLPlacemark * placemark in placemarks) { self.displayedCity.name = [placemark locality]; self.displayedCity.stadtCoord = placemark.region.center; } [self loadCity:self.displayedCity.name]; } […]

iOS:使用CLGeocoder与ReverseGeocoding进行比较 Google Geocoder API

我正在构build一个iOS应用程序,在其中的一个function实现反向地理编码,以获取用户在地图上点击手势的街道地址。 当使用CLGeocoder的反向地理编码function运行应用程序时,我只能获取城市和国家的详细信息。 在一些主要道路上,我可以得到主要的道路名称。 我认为这个限制来自Google Maps API。 但是,当我testing这个例子,(http://gmaps-samples.googlecode.com/svn/trunk/geocoder/reverse.html),我能够得到更准确和详细的信息,如街道号码和姓名和邮政编码。 这是CLGeocoder的限制吗? 如果是这样,我该如何在我的应用程序上实现Google Maps API?

在Geocode调用中崩溃

在使用CLGeocoder我得到一个崩溃(EXC_BAD_ACCESS),让我在不知道的closures成功的一部分,让我的地标…后。 我正在testing,并可能试图访问服务器多次。 或者我需要在后台线程中进行调用? import UIKit import CoreLocation class ViewController: UIViewController { var destinationPlacemark = CLPlacemark() override func viewDidLoad() { super.viewDidLoad() forwardGeocoding(address: "Infinite Loop, Cupertino, CA 95014") } func forwardGeocoding(address: String) { CLGeocoder().geocodeAddressString(address, completionHandler: { (placemarks, error) in if error != nil { print(error ?? "Error in plscement conversion") return } if (placemarks?.count)! > 0 { […]

CLGeocoder返回其他国家的地点

我有以下代码: CLGeocoder *_geo = [[CLGeocoder alloc] init]; CLRegion *region = [[CLRegion alloc] initCircularRegionWithCenter: CLLocationCoordinate2DMake(37.33233141, -122.03121860) radius:100 identifier:@"San Francisco"]; [_geo geocodeAddressString:@"Starbucks" inRegion:region completionHandler:^(NSArray *placemarks, NSError *error) { NSLog("%@", placemarks); }]; 即使该中心位于旧金山的中心,这也会返回菲律宾的星巴克酒店。 (NSArray *) $3 = 0x07cd9d10 <__NSArrayM 0x7cd9d10>( Starbuck's, Metro Manila, Quezon City, Republic of the Philippines @ <+14.63617752,+121.03067530> +/- 100.00m, region (identifier <+14.63584900,+121.02951050> radius 166.35) […]

CLPlacemark – 状态缩写?

我想知道是否有可能从CLPlacemark得到州的缩写? 在苹果的CLPlacemark Reference中指出: administrativeArea与地标关联的州或省。 (只读)@property(非primefaces,只读)NSString * administrativeArea讨论如果地标位置是苹果的总部,例如,这个属性的值将是string“CA”或“California”。 但每当我使用它,我只得到完整的国家(即加利福尼亚州),而不是缩写(即CA)。 有人能帮我一下吗?

引脚在地图上放置时,在注释中显示地址

目前我可以在地图上放置别针。 现在我想让注解标题显示引脚被丢弃的地址。 我已经看了这个,但不能让我的工作: 将标注的标题设置为当前地址 代码在我的ViewController.m 更新。 – (void)addPinToMap:(UIGestureRecognizer *)gestureRecognizer { if (gestureRecognizer.state != UIGestureRecognizerStateBegan) return; CGPoint touchPoint = [gestureRecognizer locationInView:self.map]; CLLocationCoordinate2D touchMapCoordinate = [self.map convertPoint:touchPoint toCoordinateFromView:self.map]; CLLocation *currentLocation = [[CLLocation alloc] initWithLatitude:touchMapCoordinate.latitude longitude:touchMapCoordinate.longitude]; [self.geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemark, NSError *error) { //initialize the title to "unknown" in case geocode has failed… NSString *annTitle = @"Address unknown"; […]

如何从reverseGeocodeLocation本地化地址结果?

我的iPhone应用程序应该根据用户的经纬度来parsing地址。 reverseGeocodeLocation工作正常,但结果是英文。 有没有办法将结果本地化到其他语言? 在苹果或其他任何地方找不到关于它的任何信息。 我使用的代码是: CLGeocoder *geocoder = [[[CLGeocoder alloc] init] autorelease]; CLLocation *location = [[[CLLocation alloc] initWithLatitude:coord.latitude longitude:coord.longitude] autorelease]; [geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) { NSLog(@"reverseGeocodeLocation:completionHandler: Completion Handler called!"); if (error){ NSLog(@"Geocode failed with error: %@", error); [self displayError:error]; return; } if(placemarks && placemarks.count > 0) { //do something CLPlacemark *topResult = [placemarks […]

CLGeocoder从给定的位置反向地理编码

给定经度和纬度不是我目前的位置我怎样才能使用GLGeocoder执行反向地理编码查找? self.geoCoder = [[CLGeocoder alloc] init]; self.locationManager = [[CLLocationManager alloc] init]; self.locationManager.delegate = self; // [self.locationManager startUpdatingLocation]; [self.geoCoder reverseGeocodeLocation: locationManager.location completionHandler: ^(NSArray *placemarks, NSError *error) { // [self.locationManager stopUpdatingLocation]; CLPlacemark *placemark = [placemarks objectAtIndex:0]; // Long address // NSString *locatedAt = [[placemark.addressDictionary valueForKey:@"FormattedAddressLines"] componentsJoinedByString:@", "]; // Short address NSString *locatedAt = [placemark subLocality]; cell.textLabel.text = […]