GMSPanoramaView显示空白屏幕

3
我有一个坐标数据集,保存在KMZ文件中,我想让用户通过GMSPanoramaView(使用Google-Maps-iOS-SDK的1.6.0版本)查看街景。这是我的代码:

GMSPanoramaView *panoView = [GMSPanoramaView panoramaWithFrame:CGRectZero nearCoordinate:self.placemark.point.coordinate];

这很好用,但有些坐标无法在GMSPanoramaView中显示。例如,当使用以下坐标时,GMSPanoramaView只显示空白屏幕:

latitude = 51.5308021862559, longitude = -0.16451295613534

当GMSPanoramaView初始化这些坐标时,是否有一种方法可以从它那里得到错误信息?我想向用户显示错误消息而不是空白屏幕 :)

Sean
3个回答

5
要检查某个位置是否存在街景全景图,您需要使用GMSPanoramaService Class
-(void) getStreetViewForCoordinate:(CLLocationCoordinate2D) coordinate {
    GMSPanoramaService *s = [[GMSPanoramaService alloc] init]; 
    [s requestPanoramaNearCoordinate: coordinate 
                            callback: ^(GMSPanorama *panorama, NSError *error) {
       NSLog(@"the service returned a panorama=%@ and an error=%@", panorama, error);
     }
}

不知道这个API调用。虽然对我来说看起来不错,但它可能是我发布的解决方案更优雅的替代方案。 - seanoshea
太好了。我正在寻找这个解决方案。 - Biranchi

1

解决这个问题的一种方法是实现以下GMSPanoramaViewDelegate方法:

- (void)panoramaView:(GMSPanoramaView *)view didMoveToPanorama:(GMSPanorama *)panorama

如果panorama.panoramaID字符串为空,则无法加载全景图。


1
在Swift 4中,通过添加GMSPanoramaViewDelegate并实现以下方法来解决问题:

func panoramaView(_ view: GMSPanoramaView, error: Error, onMoveNearCoordinate coordinate: CLLocationCoordinate2D)

仅当panoramaView不可用时,才会触发此方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接