質問

見せたい これ Google マップの URL スキームを使用せずに地図内の位置を取得します。指定された緯度/経度を使用してストリート ビューを表示するために GMSPanoramaView を使用しました (53.426398,-2.242795) ただし、建物領域内では表示されませんが、その領域はブラウザまたは URL スキームに表示されます。

私が使用した ギットハブのデモ ストリートビューを表示するコードですが、アプリ内の正確に上の位置を表示したいです。

WebView、Safari、Googleマップアプリは使いたくないです。

役に立ちましたか?

解決

あなたが欠落していると思います

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

他のヒント

それが可能だ!を抽出します。 panoid から user2744623の投稿:

代替リンクは次のとおりです (Google ビジネス ビューの埋め込みツールを使用) 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: 続行してイベントを生成します。のみ panoramaIDGoogle Maps SDK for iOS から取得した がサポートされています。

最後の文は無視してもいいと思います。

以下は、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

2つのオプションがあります。PANOをダウンロードするか、ビューを取得する多くのGoogle承認された方法の1つを使用してください。

これは代替リンク(Googleビジネスビュー用の中古インメダデ)です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top