如何在 iOS SDK 上通过给定的邮政编码 (ZIP) 获取国家/地区名称
Posted
技术标签:
【中文标题】如何在 iOS SDK 上通过给定的邮政编码 (ZIP) 获取国家/地区名称【英文标题】:How to get Country name by given Postal Code (ZIP) on iOS SDK 【发布时间】:2016-02-01 07:04:30 【问题描述】:是否可以通过提供用户的邮政编码来获取国家名称?
我查看了核心位置框架,但通过给定邮政编码并查找国家/地区名称,它看起来并不能反过来工作。
核心位置框架 (CoreLocation.framework) 提供位置 和应用程序的标题信息。对于位置信息, 框架使用板载 GPS、蜂窝或 Wi-Fi 无线电来查找 用户当前的经度和纬度。
我希望ios SDK上有一个类,我真的不想使用其中一个Google Maps API
【问题讨论】:
【参考方案1】:是的,您的解决方案可以在 iOS SDK 中找到。
将文本字段连接到此操作:
- (IBAction)doSomethingButtonClicked:(id) sender
CLGeocoder *geocoder = [[CLGeocoder alloc] init];
[geocoder geocodeAddressString:yourZipCodeGoesHereTextField.text completionHandler:^(NSArray *placemarks, NSError *error)
if(error != nil)
NSLog(@"error from geocoder is %@", [error localizedDescription]);
else
for(CLPlacemark *placemark in placemarks)
NSString *city1 = [placemark locality];
NSLog(@"city is %@",city1);
NSLog(@"country is %@",[placemark country]);
// you'll see a whole lotta stuff is available
// in the placemark object here...
NSLog(@"%@",[placemark description]);
];
我不知道 iOS 是否支持所有国家/地区的邮政编码,但它绝对适用于英国(例如“YO258UH”的邮政编码)和加拿大(“V3H5H1”)
【讨论】:
【参考方案2】:Michael Dautermann's 答案是正确的,如果有人来这篇文章寻找它,只需添加 swift (v4.2) 的代码:
@IBAction func getLocationTapped(_ sender: Any)
guard let zipcode = zipcodeTxtField.text else
print("must enter zipcode")
return
CLGeocoder().geocodeAddressString(zipcode) (placemarks, error) in
if let error = error
print("Unable to get the location: (\(error))")
else
if let placemarks = placemarks
// get coordinates and city
guard let location = placemarks.first?.location, let city = placemarks.first?.locality else
print("Location not found")
return
print("coordinates: -> \(location.coordinate.latitude) , \(location.coordinate.longitude)")
print("city: -> \(city)")
if let country = placemarks.first?.country
print("country: -> \(country)")
//update UI on main thread
DispatchQueue.main.async
self.countryLbl.text = country
【讨论】:
以上是关于如何在 iOS SDK 上通过给定的邮政编码 (ZIP) 获取国家/地区名称的主要内容,如果未能解决你的问题,请参考以下文章
如何通过在android中使用agora sdk在onFileMessageReceived中的给定路径中下载文件