我想展示 使用谷歌地图URL方案在地图内的位置.我使用GMSPanoramaView通过使用给定的lat/long来显示街景 (53.426398,-2.242795) 但是在建筑区域内没有显示,该区域在浏览器或URL方案中显示。

我用过 github演示 代码来显示街景,但我想显示正好在应用程序内的位置上方。

我不想使用webview,safari或google地图应用程序。

有帮助吗?

解决方案

我认为你缺少

[panoramaView_ moveToPanoramaID:@"i3XJvXkmgNMAAAQW-ezYnQ"];
.

其他提示

这是可能的!提取 panoiduser2744623的帖子:

这是一个备用链接(用于Google Business View的嵌入器) https://maps.google.com/maps?layer=c&panoid=shcQTg4Y9qh9T0p5aspVvA&ie=UTF8&source=embed&output=svembed&cbp=13%2C213%2C%2C0%2C0

然后用它作为一个 PanoramaID 在iOS SDK中:

GMSPanoramaView *view_ = [GMSPanoramaView panoramaWithFrame:CGRectZero
                          nearCoordinate:CLLocationCoordinate2DMake(53.426398, -2.242795)];
[view_ moveToPanoramaID:@"shcQTg4Y9qh9T0p5aspVvA"];

然后,您可以设置 GMSPanoramaCamera:cameraWithHeading:pitch:zoom: 无论你喜欢哪个角度:

[GMSPanoramaCamera cameraWithHeading:200.0f pitch:-10.0f zoom:1];

这是官方文档GMSPanoramaView:moveToPanoramaID::

请求全景与 panoramaID.成功完成后 panoramaView:didMoveToPanorama: 将被发送到 GMSPanoramaViewDelegate.关于错误 panoramaView:error:onMoveToPanoramaID: 将被发送。重复调用 moveToPanoramaID: 导致先前挂起的(不完整的)转换被取消--只有最近的 moveNearCoordinate:moveToPanoramaId: 将继续进行并生成事件。只有 panoramaID支持从iOS版Google Maps SDK获取的s。

我想你可以忽略最后一句,呵呵。

这是一个完整的ish实现,改编自SDK演示项目:

@interface PanoramaViewController () <GMSPanoramaViewDelegate>
@end

@implementation PanoramaViewController {
    GMSPanoramaView *view_;
    BOOL configured_;
}

- (void)viewDidLoad {
    [super viewDidLoad];

    view_ = [GMSPanoramaView panoramaWithFrame:CGRectZero
                                nearCoordinate:CLLocationCoordinate2DMake(53.426398, -2.242795)];
    view_.backgroundColor = [UIColor grayColor];
    view_.delegate = self;
    self.view = view_;

    [view_ moveToPanoramaID:@"shcQTg4Y9qh9T0p5aspVvA"];
}

#pragma mark - GMSPanoramaDelegate

- (void)panoramaView:(GMSPanoramaView *)view
   didMoveToPanorama:(GMSPanorama *)panorama {
    if (!configured_) {
        view_.camera = [GMSPanoramaCamera cameraWithHeading:200.0f pitch:-10.0f zoom:1];

        configured_ = YES;
    }
}

// Use to fine-tune initial heading and pitch
- (void)panoramaView:(GMSPanoramaView *)panoramaView
       didMoveCamera:(GMSPanoramaCamera *)camera {
    NSLog(@"Camera: (%f,%f,%f)", camera.orientation.heading, camera.orientation.pitch, camera.zoom);
}

// Helpful in finding other panorama IDs or debugging:
- (void)panoramaView:(GMSPanoramaView *)view
willMoveToPanoramaID:(NSString *)panoramaID {
    NSLog(@"willMoveToPanoramaID: %@", panoramaID);
}

- (void)panoramaView:(GMSPanoramaView *)view
               error:(NSError *)error
  onMoveToPanoramaID:(NSString *)panoramaID {
    NSLog(@"error: %@ onMoveToPanoramaID: %@", error, panoramaID);
}

@end
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top