Tag: 地理编码

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

我目前正在开发一个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]); 但我的问题是,我将如何获得最近的其他地点? 从我目前的位置,我已经提取。 提前致谢。

执行许多地理编码请求的策略

我有一个应用程序需要将许多地址转换为CLPlacemark获取经度/纬度。 在Apple文档中解释说,我们不应该执行许多GeoCode请求,地理编码请求的速率是有限的。 在我的应用程序中,要执行地理编码,我只需要一个地址,当我得到答案时,我会请求下一个地址,直到我收到所有地址的经纬度。 我将把这个代码放在一个专门的线程中,不要阻塞用户。 这似乎工作,但这是一个好策略? 我怎样才能确定苹果不会将我的应用程序黑名单或返回错误的请求。 geoCodingFor(myAddress, index: 0) private func geoCodingFor(contacts:[String], index:Int) { if index < contacts.count { let address = contacts[index] CLGeocoder().geocodeAddressString(address) { placemarks, error in if let theError = error { print("\(#function) geocode has failed for address \(address) with error \(theError .localizedDescription)") } else { if let thePlacemark = placemarks { if […]

GMSGeocoder – 如何设置响应语言

在国外使用我的应用程序时,Google GMSGeocoder会自动以本地语言返回响应。 我怎样才能把它设置为总是返回英文的回应? 即时通讯使用GMS SDK 1.7和我的代码是这样的: GMSGeocoder *geoCoder = [[GMSGeocoder alloc] init]; [geoCoder reverseGeocodeCoordinate:self.cellLocation.coordinate completionHandler:^(GMSReverseGeocodeResponse *respones, NSError *err) { if([respones firstResult]) { GMSAddress* address = [respones firstResult]; NSString* fullAddress = [NSString stringWithFormat:@"%@, %@",address.thoroughfare, address.locality]; self.theTextField.text = fullAddress; } else { self.theTextField.text = @""; } }];

谷歌地理编码API的限制超出了蜂窝networking,但不是在WiFi

我正在使用SVGeocoder访问iOS上的Google地理编码服务,而且我遇到了一个非常奇怪的问题。 地理编码在模拟器或连接到wifi的手机上进行testing时效果很好,但一旦手机切换到3G / 4G,我就开始出现“LIMIT EXCEEDED”错误。 我只通过3G / 4G提出了几十个请求,没有接近2500的请求限制。 这里可能会发生什么? 提前致谢! 更新 :我最终通过延迟每个地理编码请求之间的时间来解决问题。 我知道,发送请求太快可能是一个问题,但我没有意识到它返回相同的QUERY_LIMIT_EXCEEDED消息, 直到我读这个 。 但是,这仍然不能回答为什么它在无线上,而不是3G / 4G上的问题。

在iOS上进行离线反向地理编码

现在有很多关于这个问题的问题,但是我已经看过尽可能多的问题,没有得到答案。 我正在尝试在iOS上执行基于经度和纬度的离线反向地理编码查找。 我希望能够提供一个经纬度,并提供这个点所在的国家。 我可以使用Geonames(例如: http ://api.geonames.org/countryCode?lat=45.03&lng=8.2&username=demo)执行此操作,但是我需要离线执行类似的function,而不需要设备上的Internetfunction。 CLLocation不提供可以为我所做的工作足够可靠的离线服务,它依赖于您以前在线时所做的caching等。凌乱。 我试过这个: https : //github.com/drodriguez/reversegeocoding,但没有任何运气,它需要一些稍微复杂/令人困惑的terminal安装使用我从来没有听说过的Thor的东西,并呕吐各种各样的错误,所以我保释。 我发现了一些可下载的地图,但是这似乎更加复杂,令人担忧的是,数百兆甚至千兆字节的大小 – 远远超出了iOS应用程序的范围。 我只需要国家,没有比这个更小的(城市,街道,地点等),所以我想我应该能够得到一个更小的文件。 所以我的关键问题是:是否有一些预先存在的数据库或工具,最好有iOS支持,我可以提供一个纬度/经度,并获得一个国家? 而且,如果不是,我应该采取什么措施来获得这样的function? 提前致谢。

离线反向地理编码在国家一级

似乎有很多关于这个,但每个人似乎都想要街道级别的数据。 我正在编写一个iOS应用程序,需要为您所在的国家/地区获取国际拨号代码(即将发出) – 所以我需要的是国家。 由于这主要是在国外使用,一个在线解决scheme并不真正起作用! 惠斯特search我发现了梦幻般的openstreetmap.org,但他们的出口function似乎只是提供街道级别,并不会一气呵成走遍全世界! 一旦我有数据,我可能也需要帮助algorithm….但多数民众赞成在以后! 🙂 谢谢 本。

直到reverseGeocode返回

我正在尝试从坐标中find用户的位置以保存到我的数据库中。 要find我正在使用reverseGeocode的位置名称。 但是,因为它是一个块的方法,我self.locationName将返回(并保存为零)到数据库中。 所以我试图find一个解决scheme的问题,并试图放在一起使用信号量以下解决scheme尝试和阻止,直到我得到一个locationName我可以保存,但应用程序只是挂起时,保存button被按下。 我是否应该以这种方式解决这个问题,还是有更好的办法? dispatch_semaphore_t semaphore; – (void)reverseGeocode:(CLLocation *)location { CLGeocoder *geocoder = [[CLGeocoder alloc] init]; [geocoder reverseGeocodeLocation:location completionHandler:^(NSArray *placemarks, NSError *error) { NSLog(@"Finding address"); if (error) { NSLog(@"Error %@", error.description); } else { CLPlacemark *placemark = [placemarks lastObject]; self.locationName = [NSString stringWithFormat:@"%@", ABCreateStringWithAddressDictionary(placemark.addressDictionary, NO)]; dispatch_semaphore_signal(semaphore); } }]; } -(NSString *)findLocation:(CLLocation *)startingLocation { semaphore […]

在iOS中使用Geocoder类获取基于地址的经度和纬度

我得到了基于经度和纬度值的当前位置,然后我也使用Annotation在Google地图上find了多个地方。 现在我想根据地址(即街道,市县)来获取经纬度的值,需要怎样的指导才能实现。 直到现在,这是我曾经试过的: #import "ViewController.h" @interface ViewController () @end @implementation ViewController @synthesize streetField = _streetField, cityField = _cityField, countryField = _countryField, fetchCoordinatesButton = _fetchCoordinatesButton, nameLabel = _nameLabel, coordinatesLabel = _coordinatesLabel; @synthesize geocoder = _geocoder; – (void)viewDidLoad { [super viewDidLoad]; _streetField.delegate=self; _cityField.delegate=self; _countryField.delegate=self; // Do any additional setup after loading the view, typically from a nib. […]

使用IOS中的Geocoder类获取基于zip的纬度和经度

我得到了当前位置基于经度和纬度值,然后我也得到了多个地方在谷歌地图上使用Annotation现在我想得到经度和纬度值的基础上邮编我不知道如何获取经度和纬度值基于Zip码

如何使用Apple Map Kit实现地址的自动填写

我想自动完成用户的地址,就像google api在这个链接中提供的一样: https://developers.google.com/maps/documentation/javascript/places-autocomplete?hl=en 我如何使用苹果地图工具包实现相同的function? 我试图使用地理编码器,我写这个例如: @IBAction func SubmitGeoCode(sender: AnyObject) { let address = "1 Mart" let coder = CLGeocoder() coder.geocodeAddressString(address) { (placemarks, error) -> Void in for placemark in placemarks! { let lines = placemark.addressDictionary?["FormattedAddressLines"] as? [String] for addressline in lines! { print(addressline) } } } } 但结果非常令人失望。 任何苹果API可用于实现这样的function,或者我应该头谷歌API? 谢谢