从GMSPlace placeID获取GMSAddress

时间:2015-08-03 07:12:46

标签: ios google-maps

有没有办法从placeID获取GSMAddress。我有兴趣使用从placeID方法获得的autocompleteQuery来获取地址。

P.S:我有placeID并找到了在iOS中获得相应GMSAddress的方法。

我找到了一个帖子here,但这没有帮助。

谢谢,

2 个答案:

答案 0 :(得分:5)

自动完成后,我们会查找一个地方,然后将坐标传递给GM​​SGeocoder以检索详细信息,但我仍然缺少street_name和street_number。

CREATE TABLE [dbo].[test](
[Surname] [nvarchar](4000) COLLATE SQL_Latin1_General_CP1253_CI_AI NULL,
[First_Name] [nvarchar](4000) COLLATE SQL_Latin1_General_CP1253_CI_AI NULL
) ON [PRIMARY]

我想改用iOS自己的反向地理编码器。

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);
    }
}];

答案 1 :(得分:0)

似乎没有直接从GSMAddress placeID获取GMSPlace的方法。

我想到的一种方法是使用GMSGeocoder().reverseGeocodeCoordinate方法和coordinate中的GMSPlace属性。

我遵循的步骤可以概括为:

  1. 使用lookUpPlaceID方法查找coordinates
  2. 使用从coordinates
  3. 获得的lookUpPlaceID反向地理编码

    代码如下:

        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
                }
            })
        })
    

    欢迎提出意见和更好的解决方案。