360度全景街景在iOS从谷歌地图sdk
-
21-12-2019 - |
解决方案
我认为你缺少
[panoramaView_ moveToPanoramaID:@"i3XJvXkmgNMAAAQW-ezYnQ"];
. 其他提示
这是可能的!提取 panoid
从 user2744623的帖子:
这是一个备用链接(用于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
你有两个选项。下载PANO或使用许多Google批准的方法之一获取视图。
这是一个备用链接(用于Google Business View的embedder) https://地图.Google.com /地图?图层= C&amp; Panoid= ShcqTG4Y9QH9T0P5AspVVA&IE= UTF8&Source=嵌入和输出= SVEMBED&CBP= 13%2C213%2C%2C0%2C0
使用api - 以下是部分psudo代码,您将需要少量的javascript知识。
var your_pano = new google.maps.LatLng(53.426398,-2.242795);
var panoramaOptions2 = {
position: your_pano,
addressControlOptions: {
position: google.maps.ControlPosition.TOP_CENTER
},
zoomControl: false,
linksControl: true,
panControl: false,
fov: 110,
pov: {
heading: 100,
pitch: -20
},
zoom: 0
};
var your_pano = new google.maps.StreetViewPanorama(
document.getElementById('your_pano'),
panoramaOptions2);
your_pano.setVisible(true);
.