Domanda

Voglio mostrare questo Posizione all'interno della mappa senza utilizzare la combinazione di URL di Google Maps.i usato GMSpanoramAViewMostrando View Street utilizzando Dato Lat / Long (53.426398, -2.242795) Ma all'interno dell'area dell'edificio non mostrata, che l'area sta mostrando nel browser o nello schema URL.

ho usato github demo Codice per mostrare la vista stradale ma voglio mostrare esattamente la posizione sopra la posizione all'interno dell'app.

Non voglio usare Webview, Safari o Google Map App.

È stato utile?

Soluzione

Penso che ti manca

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

Altri suggerimenti

È possibile! Estrarre il panoid da User2744623's Post :

.

Ecco un collegamento alternativo (Embedder utilizzato per Google Business View) https://maps.google.com/maps?layer=c&panoid=shcqtg4y9Qh9t0p5aspvva&ie=utf8&source=embed&output=svembed&cbp=13%2C213%2C%2C0%2C0

e quindi usalo come PanoramaID nell'OSS SDK:

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

È quindi possibile impostare GMSPanoramaCamera:cameraWithHeading:pitch:zoom: a qualsiasi angolo che preferisci:

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

Ecco la documentazione ufficiale su GMSPanoramaView:moveToPanoramaID:: .

.

Richiede un panorama con panoramaID. Dopo il completamento con successo panoramaView:didMoveToPanorama: verrà inviato a GMSPanoramaViewDelegate. All'errore panoramaView:error:onMoveToPanoramaID: verrà inviato. Le chiamate ripetute verso moveToPanoramaID: Risultato nelle transizioni in attesa precedente (incompleta) vengono annullate - solo il più recente di moveNearCoordinate: e moveToPanoramaId: procederà e generano eventi. Sono supportati solo panoramaIDs ottenuti dall'SDK di Google Maps per iOS.

Penso che tu possa ignorare l'ultima frase, heh.

Ecco un'implementazione completa ISH, adattata dal progetto DEMO 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
.

Hai due opzioni.Scarica il Pano o utilizza uno dei tanti modi di Google approvati per ottenere la vista.

Ecco un collegamento alternativo (Embedder usato per Google Business View) https:// Maps.google.com / Maps? Layer= c & panoid= shcqtg4y9qh9t0p5aspvva & ie= utf8 & source= embed & output= svembed & cbp= 13% 2C213% 2C% 2C0% 2C0

Afferra il Pano usando Pano Fetch

Utilizzare l'API - Il seguente è parzialmente il codice PSUDO, richiederai una piccola quantità di conoscenze 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);
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top