Street View

Platform seçin: Android iOS JavaScript

Google Haritalar Street View, dünyanın dört bir yanındaki yerleri 360 derecelik, sokak düzeyinde görüntüler. Dünyanın önemli noktalarını keşfedebilir, gezinebilir veya işletmenizin dışını görebilirsiniz.

Genel Bakış

Google Street View, belirlenen yollardan 360 derecelik panoramik görünümler sunar kapsama alanında kullanılabilir. SDK aracılığıyla sağlanan kapsam: iOS için Google Haritalar uygulaması veya https://maps.google.com/. Web sitemiz g.co/newsinitiative/labs üzerinden desteklenen alanları etkileşimli harita üzerinde görebilirsiniz. Street View hakkında.

iOS için Haritalar SDK'sı, bir Street View hizmeti sağlar Google Haritalar Street View'da kullanılan görüntüleri elde etmek ve değiştirmek için Street View görüntüleri panorama olarak döndürülür ve Street View görüntüleyicisinin içinden görüntülenerek GMSPanoramaView türünde nesne.

Street View panoramaları

Her Street View panoraması, tüm ayrıntıları gösteren bir resim veya resim kümesidir. Tek bir konumdan 360 derece görünüm. Resimler eş dikdörtgene uygun 360 derece yatay görünüm (Plate Carrée) içeren (Plate Carrée) projeksiyon tam çerçeve) ve 180 derece dikey görünüm (düzden yukarıya kadar tepeden tırnağa). Ortaya çıkan 360 derecelik panorama, bir projeksiyonu küre üzerinde görüntü bu iki boyutlu yüzeyine sarılmış yer alır.

Street View panoramaları GMSPanoramaView nesnesiyle görüntülenebilir. Bu Nesne, panoramayı küre şeklinde oluşturacak bir görüntüleyici sağlar. Bunun için ortada olacak şekilde ekleyebilirsiniz. Resmin yönünü programlı bir şekilde kontrol edebilirsiniz. kameranın yanı sıra izleyiciyi özelleştiren çeşitli özellikler.

Street View verilerine erişme

Street View panoramaları iki meta veri parçasından biriyle tanımlanır:

panoramaID
Bir Street View panoramasının benzersiz kimliğidir. Bu panoramaID zamanla değişebileceği için uzun vadede veya sabit kodlu cihazlarda bir referans noktası olarak kabul edilir. panoramaID, şu bilgileri sunmak için en iyi şekilde kullanılır: farklı Street View görüntülerine programatik erişim.
coordinate
Bu resmin tam konumu, CLLocationCoordinate2D. Şunun için coordinate kullanın: bir panorama konumunun kalıcı olarak depolanması veya bir Street View görüntüsüne dönüştürmenizi sağlar.

Hem panoramaID hem de coordinate GMSPanorama nesne. Şu konumdan bir GMSPanorama isteyebilirsiniz: coordinate veya panoramaID kullanarak GMSPanoramaService. İlgili içeriği oluşturmak için kullanılan sonuçta ortaya çıkan nesne hem meta veri parçalarını hem de yakındaki panoramaların bağlantıları.

Panoramanın konumunu ayarlama

Street View panoramasının konumu, Google Haritalar'daki koordinatı.

  • moveNearCoordinate yöntemi, şuranın yakınında bir panorama ister: koordinatı.

  • moveNearCoordinate:radius yöntemi benzerdir ancak koordinat çevresinde metre cinsinden bir arama yarıçapı belirtmenize olanak tanır.

  • moveNearCoordinate:source yöntemi, bir kaynak belirtmenizi sağlar. Street View'ı yalnızca şu aramaları görecek şekilde kısıtlamak istiyorsanız, bir kaynak yararlıdır: pek çok farklı video vardır. Varsayılan olarak, konumların panoramaları genellikle iç mi yoksa dış mekan mı olduğunu belirleyin. Bulunduğunuz konum için dış mekan panoramalarının mevcut olmayabileceğini belirtilen konum.

  • moveNearCoordinate:radius:source yöntemi, hem bir kaynak belirtin.

Street View resimlerini görüntüleme

Street View görüntüleyici ekleme

İzleyici eklemenin temel adımları şunlardır:

  1. (Bir kez) SDK'yı edinmek için Başlarken bölümündeki adımları uygulayın. ve gerekli çerçeveleri eklemeyi öğreneceksiniz.
  2. Bir ViewController oluşturun veya güncelleyin. Panorama, fotoğraf çekme bu görünüm denetleyicisi görünür hale gelir. Bunu, loadView yöntemi.
  3. Şunu kullanarak bir GMSPanoramaView sınıfı oluşturun ve örnek gösterin: GMSPanoramaView initWithFrame: yöntemi. Bu, görüntüleme denetleyicisinin tek görünümünü görüntülemeniz durumunda CGRectZero, haritanın çerçeve otomatik olarak yeniden boyutlandırılır.
  4. GMSPanoramaView nesnesini, görünüm denetleyicisinin görünümü olarak ayarlayın (ör. self.view = panoView;.
  5. Street View görüntüsünün konumunu şu gibi bir yöntem kullanarak ayarlayın: moveNearCoordinate:

Aşağıdaki örnekte, bir uygulamaya Street View görüntüleyici eklenmiştir.

Swift

import GoogleMaps

class StreetView: UIViewController {

  override func loadView() {
    let panoView = GMSPanoramaView(frame: .zero)
    self.view = panoView

    panoView.moveNearCoordinate(CLLocationCoordinate2D(latitude: -33.732, longitude: 150.312))
  }
}
      

Objective-C

#import "StreetView.h"
@import GoogleMaps;

@interface StreetView ()

@end

@implementation StreetView

- (void)loadView {
  GMSPanoramaView *panoView = [[GMSPanoramaView alloc] initWithFrame:CGRectZero];
  self.view = panoView;

  [panoView moveNearCoordinate:CLLocationCoordinate2DMake(-33.732, 150.312)];
}

@end
      

Görüntüleyiciyi özelleştirme

Kullanılabilecek hareketleri kısıtlayarak görüntüleyiciyi özelleştirebilirsiniz. Ölçüt Kaydırma, yakınlaştırma ve komşu panoramalara gitme gibi özelliklerin tümü etkin. Bağımsız hareketler, GMSPanoramaView özellikleri ile kontrol edilir. Bu özellikler, kullanıcı tarafından kontrol edilen hareketleri etkinleştirir veya devre dışı bırakır; programatik Hareket devre dışı bırakıldığında da değiştirilebilir.

orientationGestures
Kullanıcının dokunarak veya dokunarak kamerayı yeniden yönlendirip gösteremeyeceği tıklayın. NO bulun.
zoomGestures
Kullanıcının iki parmak ucuyla yakınlaştırma ve uzaklaştırma yapıp yapamayacağı. NO olarak ayarla dokunarak yakınlaştırmayı devre dışı bırakabilirsiniz.
navigationGestures
Kullanıcının görünür olan panoramayı değiştirip değiştiremeyeceğini belirtir. Kullanıcı Sayısı gezinme bağlantılarına bir kez veya değiştirmek için görünüme iki kez dokunabilir panoramalar Gezinme değişikliklerini devre dışı bırakmak için NO değerine ayarlayın.

Tüm hareketleri aynı anda etkinleştirmek veya devre dışı bırakmak için setAllGesturesEnabled: yöntemini çağırın.

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

Street View'ı URL Şeması ile Başlatma

Google Street View görüntüleri, iOS için Google Haritalar'dan görüntülenebilir kabul edersiniz. iOS için Google Haritalar uygulamasını sokak üzerinde başlatabilirsiniz mapmode ayarlayarak comgooglemaps URL Şeması ile görüntüleme modu parametresini streetview olarak ayarlayın. Street View'ı başlatacak bir URL örneği aşağıda görünür. Daha fazla bilgi için URL Şeması'na bakın. belgelerinden faydalanabilirsiniz.

comgooglemaps://?center=46.414382,10.013988&mapmode=streetview

Street View konumları ve bakış açısı (POV)

GMSPanoramaCamera, Street View'ın bakış açısını ayarlamanıza olanak tanır. yön, perde ve yakınlaştırmanın bir kombinasyonu olarak kullanın.

Aşağıdaki snippet grupları kamerayı güneye ve hafifçe aşağı yönlendirir.

Swift

panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      

Objective-C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

Yön

Street View konumu, bir fotoğraf için kamera odağının yerleşimini ancak söz konusu resim için kameranın yönünü tanımlamaz. Bu amaçla, GMSOrientation nesnesi iki özellik tanımlar:

  • heading, kamera yerleşkesinin etrafındaki dönme açısını tanımlar göreceli olarak ölçtüğünüz aşamadır. Başlıklar saat yönünde ölçülür: doğru kuzey 0, doğu 90, güney 180, batı 270'tir.
  • pitch (varsayılan 0), "yukarı" açı varyansını tanımlar veya "down" şuradan kameranın ilk varsayılan perdesi (her zaman olmasa da genellikle düzdür) yatay. (Örneğin, bir tepede çekilen resimde büyük olasılıkla bir yatay olmayan varsayılan ses tonu.) Atış açıları şununla ölçülür: yukarı yönlü pozitif değerlere (en fazla +90 derece ve varsayılan perdeyi) ve aşağı bakan negatif değerleri (-90 dereceye kadar) varsayılan perdeye kadar düz ve dikey olarak).

Tarih aralığını

Street View, zum kullanımı aracılığıyla farklı düzeylerde görüntü ayrıntısını destekler. Yakınlaştırma düzeyini programatik olarak ayarlayabilirsiniz veya kullanıcılar iki parmak ucunuzu yakınlaştırın ya da uzaklaştırın.

Kamerayı hareket ettirme

GMSPanoramaView öğesini oluşturduktan sonra kullanıyorsanız birkaç şekilde değiştirebilirsiniz. elde edilen kamera hareketini canlandırma seçeneğiniz vardır. İlgili içeriği oluşturmak için kullanılan mevcut kamera özellikleri ile yeni kamera özellikleri arasında arapolasyon kamera özellikleriyle değiştirebilirsiniz.

GMSPanoramaCamera nesnesini değiştirebilir ve GMSPanoramaView adlı kullanıcının camera mülkü. Bu işlem, kamerayı yeni animasyon içermeyen bir bakış açısı sunabilir. Yapılandırmak için GMSCameraPosition oluşturulabilir tüm yön ve yakınlaştırma kombinasyonlarını kullanabilirsiniz.

Swift

panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      

Objective-C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

Geçişi canlandırmak için GMSPanoramaView için animateToCamera:animationDuration: yöntemi. Ayrıca, Core Animation'ı kullanarak kamerayı kontrol edebilirsiniz. Yapıldı GMSPanoramaView tarihinde özel CALayer üzerinden, GMSPanoramaLayer.

Street View'daki işaretçiler

GMSPanoramaView nesnesi, harita işaretçilerini görüntüleyebiliyor. URL parametrelerinin Google tarafından nasıl ele alınmasını istediğinizi belirtmek için GMSMapView veya bir üzerinde aynı GMSMarker nesnesi GMSPanoramaView nesnesini ayarlayın:

Swift

// Create a marker at the Eiffel Tower
let position = CLLocationCoordinate2D(latitude: 48.858, longitude: 2.294)
let marker = GMSMarker(position: position)

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView

// Add the marker to a GMSMapView object named mapView
marker.map = mapView
      

Objective-C

// Create a marker at the Eiffel Tower
CLLocationCoordinate2D position = CLLocationCoordinate2DMake(48.858,2.294);
GMSMarker *marker = [GMSMarker markerWithPosition:position];

// Add the marker to a GMSPanoramaView object named panoView
marker.panoramaView = panoView;

// Add the marker to a GMSMapView object named mapView
marker.map = mapView;
      

İşaretçilerin boyutu, işaretçinin konumu arasındaki mesafenin işlevi olarak konum ve GMSCameraView öğesinin konumu. Bu mesafe fazla olursa büyükse, işaretçi görüntülenemeyecek kadar küçülecektir görünüm.

panoramaView özelliğini nil olarak ayarlayıp GMSPanoramaView.

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Etkinlikler

Street View panoramasında gerçekleşen etkinlikleri dinleyebilirsiniz. Örneğin, bir fotoğrafın kullanıcı panoramaya dokunduğunda. Etkinlikleri dinlemek için GMSPanoramaViewDelegate protokolü. Genel etkinlik rehberine ve GMSPanoramaViewDelegate.