Street View

Platform seçin: Android iOS JavaScript

Google Haritalar Street View, dünyanın dört bir yanındaki yerleri, sokak düzeyinde 360 derecelik görüntüler aracılığıyla keşfetmenize olanak tanır. Dünyanın önemli noktalarını keşfedebilir, doğal gezginleri görüntüleyebilir, gezide gezebilir veya işletmenizin dış mekânını gösterebilirsiniz.

Genel bakış

Google Street View, kapsama alanı boyunca belirlenen yollardan 360 derece panoramik manzaralar sunar. SDK aracılığıyla sunulan kapsam, iOS için Google Haritalar uygulamasının veya https://maps.google.com/ uygulamasının kapsamıyla aynıdır. Street View hakkında bölümünden Street View hakkında daha fazla bilgi edinebilir ve desteklenen alanları etkileşimli harita üzerinde görebilirsiniz.

iOS için Haritalar SDK'sı, Google Haritalar Street View'da kullanılan görüntüleri almak ve değiştirmek için Street View hizmeti sunar. Street View resimleri panorama olarak döndürülür ve GMSPanoramaView türündeki bir nesne olan Street View görüntüleyicisinden görüntülenir.

Street View panoramaları

Her Street View panoraması, tek bir konumdan tam 360 derecelik görünüm sağlayan bir resim veya görüntü kümesidir. Resimler, 360 derece yatay görünüm (tüm alanı kaplayan) ve 180 derece dikey görünüm (düzden en doğruya kadar) içeren eş mesafeli dikdörtgen (Plate Carrée) projeksiyonuna uygundur. Ortaya çıkan 360 derecelik panorama, görüntünün iki boyutlu yüzeyine sarıldığı bir küre üzerinde bir projeksiyon tanımlar.

Street View panoramaları GMSPanoramaView nesnesiyle görüntülenebilir. Bu nesne, ortasında bir kamera bulunan ve panoramayı küre halinde görüntüleyen bir görüntüleyici sağlar. Kamera yönünün yanı sıra görüntüleyiciyi özelleştiren çeşitli özellikleri de 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 ya da sabit kodlu bir referans olarak uygun değildir. panoramaID, farklı Street View görüntülerine programatik erişim sağlamak için idealdir.
coordinate
Bu resmin tam konumu (CLLocationCoordinate2D olarak belirtilir). Panorama konumunun kalıcı olarak depolanması veya haritadaki kullanıcı işlemlerinin Street View görüntüsüne dönüştürülmesi için bir coordinate kullanın.

Hem panoramaID hem de coordinate, GMSPanorama nesnesinin özelliği olarak depolanır. coordinate veya panoramaID kullanarak GMSPanoramaService aracından GMSPanorama isteyebilirsiniz. Sonuçta elde edilen nesne, her iki meta veri parçasının yanı sıra yakındaki panoramalara yönlendiren bir dizi bağlantı içerecektir.

Panoramanın konumu ayarlanıyor

Street View panoramasının konumu koordinata dayalı olarak ayarlanabilir.

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

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

  • moveNearCoordinate:source yöntemi, kaynak belirtmenizi sağlar. Street View'ı yalnızca dışarıdaki panoramaları arayacak şekilde kısıtlamak istiyorsanız kaynak kullanabilirsiniz. Varsayılan olarak, konumların panoramaları içinde veya dışındadır. Belirtilen konum için açık hava panoramalarının mevcut olmayabileceğini unutmayın.

  • moveNearCoordinate:radius:source yöntemi, hem yarıçap hem de kaynak belirtmenizi sağlar.

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

Street View görüntüleyici ekleme

İzleyici eklemek için temel adımlar şunlardır:

  1. (Bir kez) SDK'yı edinmek için Başlarken bölümündeki adımları uygulayın, bir anahtar edinin ve gerekli çerçeveleri ekleyin.
  2. ViewController oluşturun veya güncelleyin. Bu görünüm denetleyicisi görünür olduğunda panorama gösterilecekse loadView yöntemiyle oluşturduğunuzdan emin olun.
  3. GMSPanoramaView initWithFrame: yöntemini kullanarak bir GMSPanoramaView sınıfı oluşturun ve somutlaştırın. Bu, görünüm denetleyicisinin tek görünümü olarak kullanılıyorsa haritanın çerçevesi olarak CGRectZero 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 (ör. self.view = panoView;).
  5. Street View görüntüsünün konumunu moveNearCoordinate: gibi bir yöntem kullanarak ayarlayın.

Aşağıdaki örnek, bir uygulamaya Street View görüntüleyicisi eklemektedir.

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. Varsayılan olarak kaydırma, yakınlaştırma ve komşu panoramalara gitme özellikleri etkindir. Her bir hareket GMSPanoramaView ürününün özellikleriyle kontrol edilir. Bu özellikler, kullanıcı tarafından kontrol edilen hareketleri etkinleştirir veya devre dışı bırakır. Hareket devre dışı bırakıldığında programlı değişiklikler yapılabilir.

orientationGestures
Kullanıcının dokunarak veya sürükleyerek kamera yönünü değiştirip değiştiremeyeceğini belirtir. Kameranın yön değişikliklerini devre dışı bırakmak için ayarı NO yapın.
zoomGestures
Kullanıcının yakınlaştırmak için iki parmak ucunuzu yakınlaştırıp uzaklaştıramayacağını belirtir. Yakınlaştırmayı devre dışı bırakmak için ayarı NO yapın.
navigationGestures
Kullanıcının hangi panoramanın görünür olacağını değiştirip değiştiremeyeceği. Kullanıcılar, gezinme bağlantılarına bir kez dokunabilir veya panoramaları değiştirmek için görünüme iki kez dokunabilir. "NO" olarak ayarlanan gezinme değişikliklerini devre dışı bırakabilir.

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

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

URL Şeması ile Street View'ı 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 iOS için Google Haritalar uygulamasını comgooglemaps URL Şeması ile sokak görünümü modunda başlatabilirsiniz. Street View'ı başlatacak URL'nin bir örneği aşağıda verilmiştir. Daha fazla bilgi için URL Şeması dokümanlarına 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ı başlık, eğim ve yakınlaştırmanın bir kombinasyonu olarak ayarlamanıza olanak tanır.

Aşağıdaki snippet grupları kamerayı güneye ve biraz aşağı doğru yönlendirecektir.

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 görüntü için kameranın yönünü tanımlamaz. Bu amaçla, GMSOrientation nesnesi iki özelliği tanımlar:

  • heading, kamera konumu çevresindeki dönüş açısını gerçek kuzeye göre derece cinsinden tanımlar. 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), kameranın genellikle (ancak her zaman değil) yatay olan ilk varsayılan perdesindeki "yukarı" veya "aşağı" açı varyansını tanımlar. (Örneğin, tepede çekilen bir resim büyük olasılıkla yatay olmayan bir varsayılan perde gösterecektir.) Ses perdesi açıları, yukarı bakan pozitif değerlerle (yukarıdan +90 derece dik ve varsayılan perdeye dik yönde) ve negatif değerlerle (-90 derece aşağıya doğru ve varsayılan perdeye dik) ölçülür.

Tarih aralığını

Sokak Görünümü, zum kullanılarak farklı görüntü ayrıntısı düzeylerini destekler. Yakınlaştırma düzeyini programatik olarak ayarlayabilirsiniz veya kullanıcılar, yakınlaştırmak için parmaklarıyla sıkıştırma hareketi yaparak görüntüleyicideki düzeyi değiştirebilirler.

Kamerayı hareket ettirme

Oluşturulan GMSPanoramaView kamerada yapılandırılmış veya varsayılan kamera bulunuyor. Kamerayı birkaç şekilde değiştirebilirsiniz. Kamerayı değiştirdiğinizde ortaya çıkan kamera hareketini canlandırma seçeneğiniz vardır. Animasyon, mevcut kamera özellikleri ile yeni kamera özellikleri arasında interpolasyon yapar.

GMSPanoramaCamera nesnesini değiştirebilir ve GMSPanoramaView öğesinin camera özelliğinde ayarlayabilirsiniz. Bu işlem, kamerayı animasyon olmadan yeni bakış noktasına tutturur. 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 animateToCamera:animationDuration: yöntemini çağırarak bir geçişi canlandırabilirsiniz. Ayrıca, Core Animation'ı kullanarak kamerayı da kontrol edebilirsiniz. Bu özellik, GMSPanoramaView GMSPanoramaLayer adresindeki özel CALayer aracılığıyla sunulmaktadır.

Sokak Görünümü'ndeki işaretçiler

GMSPanoramaView nesnesi harita işaretçilerini görüntüleyebilir. Karşılık gelen özelliklerini ayarlayarak aynı GMSMarker nesnesini bir 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çiler, boyutu, işaretçinin konumu ile GMSCameraView konumu arasındaki mesafenin bir işlevi olarak ölçeklenir. Bu mesafe çok artarsa işaretçi görüntülenemeyecek kadar küçük olur ve görünmez.

panoramaView özelliğini GMSPanoramaView ürününden kaldırmak için nil olarak ayarlayın.

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Etkinlikler

Bir kullanıcının panoramaya dokunması gibi Street View panoramasında gerçekleşen etkinlikleri dinleyebilirsiniz. Etkinlikleri dinlemek için GMSPanoramaViewDelegate protokolünü uygulamanız gerekir. Genel etkinlik kılavuzuna ve GMSPanoramaViewDelegate yöntemlerinin listesine bakın.