Panorama de 360 grados de street view en iOS desde el mapa de google sdk
-
21-12-2019 - |
Pregunta
Quiero mostrar este ubicación en el mapa con el uso de Google Maps Esquema de URL.He utilizado GMSPanoramaView para mostrar vistas a la calle mediante el uso de da lat/long (53.426398,-2.242795) pero dentro de área de construcción no se muestra , que el área se muestra en el navegador o el Esquema de URL.
He utilizado github demo código para mostrar vistas a la calle, pero quiero demostrar exactamente por encima de la ubicación dentro de la aplicación.
No quiero usar webview ,safari o google app de mapas.
Solución
creo que te falta
[panoramaView_ moveToPanoramaID:@"i3XJvXkmgNMAAAQW-ezYnQ"];
Otros consejos
Es posible!Extracto de la panoid
de user2744623 del post:
Aquí está un enlace alternativo (utilizado Embedder para Google Business View) https://maps.google.com/maps?layer=c&panoid=shcQTg4Y9qh9T0p5aspVvA&ie=UTF8&source=embed&output=svembed&cbp=13%2C213%2C%2C0%2C0
Y, a continuación, utilizarlo como un PanoramaID
en el SDK de iOS:
GMSPanoramaView *view_ = [GMSPanoramaView panoramaWithFrame:CGRectZero
nearCoordinate:CLLocationCoordinate2DMake(53.426398, -2.242795)];
[view_ moveToPanoramaID:@"shcQTg4Y9qh9T0p5aspVvA"];
A continuación, puede establecer GMSPanoramaCamera:cameraWithHeading:pitch:zoom:
a cualquier ángulo que usted prefiera:
[GMSPanoramaCamera cameraWithHeading:200.0f pitch:-10.0f zoom:1];
Aquí está la documentación oficial en GMSPanoramaView:moveToPanoramaID:
:
Pide un panorama con
panoramaID
.Tras la finalización con éxitopanoramaView:didMoveToPanorama:
será enviado aGMSPanoramaViewDelegate
.En caso de errorpanoramaView:error:onMoveToPanoramaID:
será enviado.Llamadas repetidas amoveToPanoramaID:
resultado de la pendiente (incompleta) de las transiciones que se cancela -- sólo el más reciente demoveNearCoordinate:
ymoveToPanoramaId:
van a seguir y generar eventos.SólopanoramaID
s obtenidos a partir de los Mapas de Google SDK para iOS son compatibles.
Creo que se puede ignorar la última frase, je.
He aquí una completa-ish aplicación, adaptada de la SDK de proyecto de demostración:
@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
Tienes dos opciones.Descargue el PANO o use una de las muchas formas de Google Aprobado para obtener la vista.
Aquí hay un enlace alternativo (Embedder usado para Google Business View) https:// Maps.google.com / maps? Capa
Agarrar el PANO usando PANO FETCH
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);