【问题标题】:GMSPanoramaView blank screenGMPanoramaView 空白屏幕
【发布时间】:2014-01-04 16:07:34
【问题描述】:

我在 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 显示像这样的坐标时,有什么方法可以从 GMSPanoramaView 返回错误?我希望能够向用户显示错误消息,而不仅仅是空白屏幕:)

肖恩

【问题讨论】:

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


    【解决方案1】:

    要检查某个位置是否存在街景全景,您必须使用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 调用。不过对我来说看起来不错,并且可能是我发布的解决方案的更优雅的解决方案。
    • 优秀。我一直在寻找这个解决方案。
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      在 Swift 4 中, 通过添加GMSPanoramaViewDelegate并实现以下方法解决了它

      func 全景视图(_ 视图:GMSPanoramaView,错误:错误, onMoveNearCoordinate 坐标:CLLocationCoordinate2D)

      只有当panoramaView不可用时,才点击该方法。

      【讨论】:

        猜你喜欢
        • 2018-09-18
        • 1970-01-01
        • 1970-01-01
        • 2012-05-06
        • 2017-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多