从 GMSPlace placeID 获取 GMSAddress
Posted
技术标签:
【中文标题】从 GMSPlace placeID 获取 GMSAddress【英文标题】:Get GMSAddress from GMSPlace placeID 【发布时间】:2015-08-03 07:12:46 【问题描述】:有什么方法可以从placeID 获取GSMAddress
。我有兴趣使用从autocompleteQuery
方法获得的placeID
获取地址。
P.S:我有一个 placeID
并想办法在 ios 中获取对应的 GMSAddress
。
我找到了一个帖子 here 但这没有帮助。
谢谢,
【问题讨论】:
【参考方案1】:自动完成后,我们进行地点查找,然后将坐标传递给 GMSGeocoder 以检索详细信息,但我仍然缺少 street_name 和 street_number。
CLLocationCoordinate2D addressCoordinates = CLLocationCoordinate2DMake(latitude,longitude);
GMSGeocoder* coder = [[GMSGeocoder alloc] init];
[coder reverseGeocodeCoordinate:addressCoordinates completionHandler:^(GMSReverseGeocodeResponse *results, NSError *error)
if (error)
NSLog(@"Error %@", error.description);
else
GMSAddress* address = [results firstResult];
NSLog(@"thoroughfare %@",address.thoroughfare);
NSLog(@"locality %@",address.locality);
NSLog(@"subLocality %@",address.subLocality);
NSLog(@"administrativeArea %@",address.administrativeArea);
NSLog(@"postalCode %@",address.postalCode);
NSLog(@"country %@",address.country);
NSLog(@"lines %@",address.lines);
];
我正在考虑切换到 iOS 自己的反向地理编码器。
[CLGeocoder reverseGeocodeLocation:[[CLLocation alloc] initWithLatitude:latitude longitude:longitude] completionHandler:
^(NSArray* placemarks, NSError* error)
【讨论】:
我想要完全相反的东西。从地址获取 lat long .. GMSGeocoder 怎么可能! 这可以获得街道名称和街道号码。在 swift 4.1 Xcode 9.4.1 中查看我的答案。您甚至可以获得村庄名称的详细信息。 ***.com/questions/16647996/…【参考方案2】:似乎没有直接的方法可以从GMSPlace
placeID 获取GSMAddress
。
我想出的一种方法是使用GMSGeocoder().reverseGeocodeCoordinate
方法以及来自GMSPlace
的coordinate
属性。
我遵循的步骤可以总结为:
-
使用
lookUpPlaceID
方法找到coordinates
使用从lookUpPlaceID
获得的coordinates
反向地理编码
代码如下:
placesClient?.lookUpPlaceID(placeID, callback:
(place, error) -> Void in
// Get place.coordinate
GMSGeocoder().reverseGeocodeCoordinate(place!.coordinate, completionHandler:
(response, error) -> Void in
for addObj in response.results()
// Address object
)
)
欢迎评论和更好的解决方案。
【讨论】:
我唯一的问题是无法将 street_number 与 street_name 分开。在我的代码 sn-p 中见下文 @bendigi,请看我的回答***.com/questions/16647996/…以上是关于从 GMSPlace placeID 获取 GMSAddress的主要内容,如果未能解决你的问题,请参考以下文章
GMSPlace 返回无效坐标(-180、-180),但名称和地点 ID 正确
如何使用 axios 为 Google 地图和 React 中的 placeid 获取数据?
Google Maps Roads API 返回重复的坐标和 placeIds
如何根据 PlaceID 列出 ave_rating,取其平均值并分配给所有具有 PlaceID 的 PlaceID。 [复制]
无法获取提供商 com.google.android.gms.measurement.AppMeasurementContentProvider