GMSPanoramaView空白屏幕

时间:2014-01-04 16:07:35

标签: ios objective-c google-maps google-street-view gmsmapview

我在KMZ文件中有一个坐标数据集,我希望能够为用户提供使用GMSPanoramaView查看街景的选项(使用1.6.0版本的Google-Maps-iOS-SDK )。这是我的代码的样子:

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

这很有效,除了GMSPanoramaView无法使用的坐标。例如,以下坐标不会通过GMSPanoramaView显示:

latitude = 51.5308021862559, longitude = -0.16451295613534

GMSPanoramaView在使用这些坐标初始化时只显示一个空白屏幕。

有什么方法可以从GMSPanoramaView中获取错误,当它出现这样的坐标时?我希望能够向用户显示错误消息,而不仅仅是空白屏幕:)

肖恩

3 个答案:

答案 0 :(得分: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);
     }
}

答案 1 :(得分:1)

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

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

如果panorama.panoramaID NSString为null,则无法加载全景图。

答案 2 :(得分:1)

在swift 4中, 通过添加GMSPanoramaViewDelegate并实现以下方法解决了这个问题

  

func panoramaView(_ view:GMSPanoramaView,错误:错误,   onMoveNearCoordinate坐标:CLLocationCoordinate2D)

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