我在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中获取错误,当它出现这样的坐标时?我希望能够向用户显示错误消息,而不仅仅是空白屏幕:)
肖恩
答案 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不可用时,才会触发此方法。