Street View

Platform seçin: Android iOS JavaScript

Google Haritalar Street View, 360 derecelik sokak seviyesi görüntüleri aracılığıyla dünyanın dört bir yanındaki yerleri keşfetmenizi sağlar. Dünyadaki önemli noktaları keşfedebilir, doğa harikalarını görüntüleyebilir, bir geziye gidebilir veya işletmenizin dışını gösterebilirsiniz.

Genel Bakış

Google Street View, hakkında haber yapılan bölge boyunca belirlenen yollardan 360 derecelik panoramik görünümler sunar. SDK üzerinden sunulan kapsam, iOS için Google Haritalar uygulaması veya https://maps.google.com/ ile aynıdır. Street View hakkında daha fazla bilgi edinebilir ve desteklenen bölgeleri etkileşimli bir haritada görebilirsiniz. Bunun için Street View hakkında başlıklı makaleyi inceleyin.

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

Street View panoramaları

Her Street View panoraması, tek bir konumdan 360 derecelik tam görünüm sağlayan bir resim veya resim grubudur. Resimler, 360 derece yatay görünüm (tam sarma) ve 180 derece dikey görünüm (tam yukarıdan tam aşağıya) içeren eşit dikdörtgen (Plate Carrée) projeksiyonuna uygundur. Elde edilen 360 derecelik panorama, görüntünün bu kürenin iki boyutlu yüzeyine sarıldığı bir küre üzerinde projeksiyon tanımlar.

Street View panoramaları GMSPanoramaView nesnesiyle görüntülenebilir. Bu nesne, panoramayı merkezinde bir kamera olacak şekilde küre olarak oluşturacak bir görüntüleyici sağlar. Kameranın yönünü ve görüntüleyiciyi özelleştiren çeşitli özellikleri programatik olarak kontrol edebilirsiniz.

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ği. Bu panoramaID zaman içinde değişebilir ve uzun vadeli veya sabit kodlanmış bir referans olarak uygun değildir. panoramaID, farklı Street View görüntülerine programatik erişim sağlamak için en iyi şekilde kullanılır.
coordinate
Bu resmin tam konumu, CLLocationCoordinate2D olarak ifade edilir. Panorama konumunun kalıcı depolama alanı için veya haritadaki kullanıcı işlemlerini Street View görüntüsüne dönüştürmek için coordinate kullanın.

Hem panoramaID hem de coordinate, GMSPanorama nesnesinin özellikleri olarak depolanır. GMSPanorama isteğinde bulunmak için GMSPanoramaService'i kullanabilirsiniz. Bu işlem için coordinate veya panoramaID'i kullanabilirsiniz. Elde edilen nesne, her iki meta veri parçasının yanı sıra yakındaki panoramalara ait bağlantı dizisini de içerir.

Panoramanın konumunu ayarlama

Street View panoramasının konumu, koordinata göre ayarlanabilir.

  • moveNearCoordinate yöntemi, koordinatın yakınında panorama isteğinde bulunur.

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

  • moveNearCoordinate:source yöntemi, bir kaynak belirtmenize olanak tanır. Kaynak, Street View'un yalnızca dışarıdaki panoramaları aramasını istiyorsanız kullanışlıdır. Varsayılan olarak, konumların panoramaları iç veya dış mekandır. Belirtilen konum için dış mekan panoramalarının mevcut olmayabileceğini unutmayın.

  • moveNearCoordinate:radius:source yöntemi, hem yarıçap hem de kaynak belirtmenize olanak tanır.

Street View görüntülerini görüntüleme

Street View görüntüleyici ekleme

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

  1. SDK'yı edinmek, anahtar almak ve gerekli çerçeveleri eklemek için Başlarken bölümündeki adımları (bir kez) uygulayın.
  2. ViewController oluşturun veya güncelleyin. Bu görünüm denetleyicisi görünür hale geldiğinde panorama gösterilecekse panoramayı loadView yöntemi içinde oluşturduğunuzdan emin olun.
  3. GMSPanoramaView initWithFrame: yöntemini kullanarak GMSPanoramaView sınıfı oluşturun ve örneğini oluşturun. Bu, görünüm denetleyicisinin tek görünümü olarak kullanılacaksa CGRectZero, haritanın çerçevesi olarak kullanılabilir. Harita otomatik olarak yeniden boyutlandırılır.
  4. GMSPanoramaView nesnesini görünüm denetleyicisinin görünümü olarak ayarlayın. Örneğin, self.view = panoView;.
  5. moveNearCoordinate: gibi bir yöntem kullanarak Street View görüntüsünün konumunu ayarlayın.

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

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

Hangi hareketlerin kullanılabileceğini kısıtlayarak görüntüleyiciyi özelleştirebilirsiniz. Varsayılan olarak kaydırma, yakınlaştırma ve bitişik panaromalara gitme özellikleri etkindir. Tek tek hareketler, GMSPanoramaView özellikleriyle kontrol edilir. Bu özellikler, kullanıcı kontrollü hareketleri etkinleştirir veya devre dışı bırakır. Hareket devre dışı bırakıldığında programatik değişiklikler yapılmaya devam edebilir.

orientationGestures
Kullanıcının kamerayı dokunarak veya sürükleyerek yeniden yönlendirip yönlendiremeyeceği. Kameranın yön değişikliklerini devre dışı bırakmak için NO olarak ayarlayın.
zoomGestures
Kullanıcının yakınlaştırmak için parmağını sıkıştırıp sıkıştıramayacağı. Yakınlaştırmayı devre dışı bırakmak için NO olarak ayarlayın.
navigationGestures
Kullanıcının hangi panoramanın görüneceğini değiştirip değiştiremeyeceği. Kullanıcılar, gezinme bağlantılarına tek dokunarak veya görünümde çift dokunarak panoramaları değiştirebilir. Gezinme değişikliklerini devre dışı bırakmak için NO olarak ayarlayın.

setAllGesturesEnabled: yöntemini kullanarak tüm hareketleri tek seferde etkinleştirebilir veya devre dışı bırakabilirsiniz.

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

URL şemasıyla Street View'u başlatma

Google Street View görüntüleri, iOS için Google Haritalar uygulamasından görüntülenebilir. mapmode parametresini streetview olarak ayarlayarak comgooglemaps URL şemasıyla iOS için Google Haritalar uygulamasını Street View modunda başlatabilirsiniz. Aşağıda, Street View'u başlatacak bir URL örneği verilmiştir. Daha fazla bilgi için URL Şeması belgelerine bakın.

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

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

GMSPanoramaCamera, Street View kamerasının bakış açısını yön, eğim ve yakınlaştırma kombinasyonu olarak ayarlamanıza olanak tanır.

Aşağıdaki snippet'ler, kamerayı güneye ve hafifçe aşağıya doğru 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 resmin kamera odağının yerleşimini tanımlar ancak bu resim için kameranın yönünü tanımlamaz. Bu amaçla, GMSOrientation nesnesi iki özellik tanımlar:

  • heading, gerçek kuzeye göre derece cinsinden kamera yerinin etrafındaki dönüş açısını tanımlar. Yönler saat yönünde ölçülür: Gerçek kuzey 0, doğu 90, güney 180, batı 270 derecedir.
  • pitch (varsayılan 0), kameranın genellikle (ancak her zaman değil) düz yatay olan ilk varsayılan eğiminden "yukarı" veya "aşağı" açı varyansını tanımlar. (Örneğin, bir tepede çekilen bir görüntüde muhtemelen yatay olmayan varsayılan bir eğim bulunur.) Eğim açıları, yukarı bakan pozitif değerlerle (+90 dereceye kadar düz yukarı ve varsayılan eğime dik) ve aşağı bakan negatif değerlerle (-90 dereceye kadar düz aşağı ve varsayılan eğime dik) ölçülür.

Tarih aralığını

Street View, yakınlaştırma özelliği sayesinde farklı görüntü ayrıntı düzeylerini destekler. Yakınlaştırma seviyesini programatik olarak ayarlayabilir veya kullanıcılar, yakınlaştırmak için izleyicide iki parmağını açarak düzeyi değiştirebilir.

Kamerayı hareket ettirme

GMSPanoramaView oluşturduktan sonra, yapılandırılmış veya varsayılan bir kamerası varsa bunu birkaç şekilde değiştirebilirsiniz. Kamerayı değiştirdiğinizde ortaya çıkan kamera hareketini animasyon olarak kullanabilirsiniz. Animasyon, mevcut kamera özellikleri ile yeni kamera özellikleri arasında enterpolasyon yapar.

GMSPanoramaCamera nesnesini değiştirebilir ve GMSPanoramaView nesnesinin camera özelliğine ayarlayabilirsiniz. Bu işlem, kamerayı animasyon olmadan yeni bakış açısına sabitler. Herhangi bir yön ve yakınlaştırma kombinasyonunu yapılandırmak için GMSCameraPosition oluşturulabilir.

Swift

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

Objective-C

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

GMSPanoramaView öğesinin animateToCamera:animationDuration: yöntemini çağırarak bir geçişi canlandırabilirsiniz. Ayrıca, Core Animation'ı kullanarak kamerayı kontrol edebilirsiniz. Bu özellik, GMSPanoramaView, GMSPanoramaLayer adresindeki özel CALayer aracılığıyla kullanılabilir.

Street View'daki işaretçiler

GMSPanoramaView nesnesi, harita işaretçilerini görüntüleyebilir. Aşağıdaki özellikleri ayarlayarak aynı GMSMarker nesnesini GMSMapView veya GMSPanoramaView nesnesinde kullanabilirsiniz:

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 ile GMSCameraView'nın konumu arasındaki mesafeye göre ölçeklendirilir. Bu mesafe çok büyük olursa işaretçi görüntülenemeyecek kadar küçülür ve görünümden gizlenir.

panoramaView özelliğini GMSPanoramaView'den kaldırmak için nil olarak ayarlayın.

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Etkinlikler

Street View panoramasında gerçekleşen etkinlikleri (ör. kullanıcının panoramaya dokunması) dinleyebilirsiniz. Etkinlikleri dinlemek için GMSPanoramaViewDelegate protokolünü uygulamanız gerekir. Genel etkinlik rehberini ve GMSPanoramaViewDelegate üzerindeki yöntemlerin listesini inceleyin.