문제

보여주고 싶다 이것 Google Maps URL Scheme을 사용하지 않고 지도 내부의 위치. 주어진 위도/경도를 사용하여 스트리트 뷰를 표시하기 위해 GMSPanoramaView를 사용했습니다. (53.426398,-2.242795) 하지만 내부 건물 영역이 표시되지 않고 해당 영역이 브라우저 또는 URL 구성표에 표시됩니다.

나는 사용했다 깃허브 데모 스트리트 뷰를 표시하는 코드이지만 앱 내부의 위치 바로 위에 표시하고 싶습니다.

webview, Safari 또는 Google 지도 앱을 사용하고 싶지 않습니다.

도움이 되었습니까?

해결책

나는 당신이 누락 된 것 같아

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

다른 팁

있을 수있다!추출 panoid ~에서 user2744623의 게시물:

다음은 대체 링크입니다(Google 비즈니스 뷰에 Embedder 사용). 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: 진행하고 이벤트를 생성합니다.오직 panoramaIDiOS용 Google Maps SDK에서 가져온 가 지원됩니다.

마지막 문장은 무시하셔도 될 것 같아요.

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 비즈니스 뷰를위한 사용 내장) https : // maps..google.com / 맵? layer= c & panoid= shcqtg4y9qh9t0p5aspvva & ie= utf8 & source= embed & outp= svembed & cbp= 13 % 2C213 % 2C % 2C0 % 2C0

pano fetch

을 사용하여 pano를 잡아라.

API를 사용하십시오. 아래는 부분적으로 PSUDO 코드이므로 소량의 자바 스크립트 지식이 필요합니다.

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);
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top