Street View

Platform seçin: Android iOS JavaScript

Google Haritalar Street View, sokak düzeyinde sunulan 360 derece görüntülerle dünyanın dört bir yanındaki yerleri keşfetmenize olanak tanır. Dünyadaki önemli noktaları keşfedebilir, doğal yürüyüşler yapabilir, bir gezide gezinebilir ya da işletmenizin dışını gösterebilirsiniz.

Genel bakış

Google Street View, belirlenmiş yol boyunca uzanan bölgenin 360 derecelik panoramik manzaralarını sunar. SDK aracılığıyla kullanılabilen kapsam, iOS için Google Haritalar uygulaması veya https://maps.google.com/ ile aynıdır. Street View hakkında başlıklı makalede Street View hakkında daha fazla bilgi edinebilir ve desteklenen alanları etkileşimli bir harita üzerinde görebilirsiniz.

iOS için Haritalar SDK'sı, Google Haritalar Street View'da kullanılan görüntüleri edinmek ve değiştirmek için Street View hizmeti sunar. Street View görüntüleri panoramik olarak döndürülür ve Street View görüntüleyici içinden (GMSPanoramaView türünde bir nesne) görüntülenir.

Street View panoramaları

Her Street View panoraması, tek bir konumdan tam 360 derece görünüm sağlayan bir resim veya resim grubudur. Resimler, 360 derece yatay görünüm (tam sarmalama) ve 180 derece dikey görünüm (düzten dik yönde) içeren eş mesafeli (plate Carrée) projeksiyona uygundur. Ortaya çıkan 360 derecelik panoramik görüntü, kürenin iki boyutlu yüzeyine sarılmış bir küre üzerinde projeksiyon tanımlar.

Street View panoramaları GMSPanoramaView nesnesiyle görüntülenebilir. Bu nesne, ortasında bir kamera olacak şekilde, panoramayı küre olarak oluşturacak bir görüntüleyen sağlıyor. Kameranın yönünü ve izleyiciyi özelleştiren birkaç özelliği programatik olarak kontrol edebilirsiniz.

Street View verilerine erişme

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

panoramaID
Street View panoramasının benzersiz kimliği. Bu panoramaID zaman içinde değişebilir ve uzun vadeli, sabit kodlu bir referans olarak uygun değildir. panoramaID, en iyi şekilde farklı Street View görüntülerine programatik erişim sağlamak için kullanılır.
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 özellikleri olarak depolanır. coordinate veya panoramaID özelliğini kullanarak GMSPanoramaService öğesinden GMSPanorama isteyebilirsiniz. Sonuçta ortaya çıkan nesne, hem meta verilerin bir parçasını hem de yakındaki panoramalara giden bir bağlantı dizisi içerir.

Panoramanın konumunu ayarlama

Street View panoramasının konumu koordinat doğrultusunda ayarlanabilir.

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

  • moveNearCoordinate:radius yöntemi benzerdir ancak koordinat etrafında metre cinsinden bir arama yarıçapı belirtmenizi sağlar.

  • moveNearCoordinate:source yöntemi, kaynak belirtmenize olanak tanır. Street View'u yalnızca dışarıdaki panoramikleri arayacak şekilde sınırlamak istiyorsanız bir kaynak işinize yarayabilir. Varsayılan olarak, konumların panoramik görüntüleri içinde veya dışındadır. Belirtilen konum için açık hava panoramalarının bulunmayabileceğini unutmayın.

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

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

Street View görüntüleyici ekleme

İzleyici eklemeyle ilgili temel adımlar şunlardır:

  1. (Bir kez) SDK'yı edinmek için Başlangıç bölümündeki adımları uygulayın, bir anahtar edinin ve gerekli çerçeveleri ekleyin.
  2. ViewController oluşturun veya güncelleyin. Panorama bu görünüm denetleyicisi görünür hale geldiğinde görüntülenirse, loadView yöntemini kullanarak oluşturduğunuzdan emin olun.
  3. GMSPanoramaView initWithFrame: yöntemini kullanarak bir GMSPanoramaView sınıfı oluşturun ve örnek 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 (ör. self.view = panoView;).
  5. Street View görüntüsünün konumunu moveNearCoordinate: gibi bir yöntem kullanarak belirleyin.

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

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 mevcut olduğunu kısıtlayarak görüntüleyiciyi özelleştirebilirsiniz. Varsayılan olarak, kaydırma, yakınlaştırma ve bitişik panoramalara gitme işlevleri etkindir. Bağımsız hareketler GMSPanoramaView özellikleri üzerinden kontrol edilir. Bu özellikler, kullanıcı tarafından kontrol edilen hareketleri etkinleştirir veya devre dışı bırakır. Hareket devre dışıyken programatik değişiklikler yapılabilir.

orientationGestures
Kullanıcının dokunarak veya sürükleyerek kamerayı yeniden yönlendirip yönlendiremeyeceği. Kamerada 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 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ünür olacağını değiştirip değiştiremeyeceği. Kullanıcılar, gezinme bağlantılarına bir kez dokunarak veya panoramaları değiştirmek için görünüme iki kez dokunarak NO olarak ayarlayabilir.

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

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

URL Şeması ile Street View'u kullanıma sunma

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'u başlatacak bir URL ö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 perspektifini başlık, perde 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ö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 bir görüntü için kameranın yönünü tanımlamaz. Bu amaçla GMSOrientation nesnesi iki özellik tanımlar:

  • heading, kamera konumunun etrafındaki döndürme 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 başlangıçtaki varsayılan perdesinden "yukarı" veya "aşağı" açısı sapmasını tanımlar. Bu değer genellikle düz (ancak her zaman değil) düzdür. (Örneğin, bir tepede çekilen resimde, yatay olmayan varsayılan bir perde gösteriliyor.) Öneri açıları ölçülür (yukarıya doğru 90 derece yukarıya, varsayılan perdeye göre dikey) ve aşağıya bakıp (-90 dereceye denk gelir) varsayılan olarak ölçülür.

Tarih aralığını

Street View, yakınlaştırma amacıyla farklı resim ayrıntı düzeylerini destekler. Yakınlaştırma düzeyini programatik olarak ayarlayabilirsiniz veya kullanıcılar yakınlaştırmak için sıkıştırarak izleyicideki düzeyi değiştirebilir.

Kamerayı hareket ettirme

GMSPanoramaView cihazını oluşturduktan sonra, yapılandırılmış veya varsayılan bir kameraya sahip olduktan sonra bunu birkaç şekilde değiştirebilirsiniz. Kamerayı değiştirdiğinizde, elde edilen kamera hareketini canlandırma seçeneğiniz vardır. Animasyon, mevcut kamera özellikleri ile yeni kamera özellikleri arasında geçiş yapar.

GMSPanoramaCamera nesnesini değiştirebilir ve GMSPanoramaView nesnesinin camera özelliğinde ayarlayabilirsiniz. Bu işlem, kamerayı animasyon olmadan yeni görüntü noktasına çeker. 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 işleminin animateToCamera:animationDuration: yöntemini çağırarak bir geçişin animasyonunu oluşturabilirsiniz. Ayrıca, Temel Animasyon'u kullanarak kamerayı da kontrol edebilirsiniz. Bu özellik, GMSPanoramaView GMSPanoramaLayer adresindeki özel CALayer üzerinden kullanılabilir.

Street View'daki işaretçiler

GMSPanoramaView nesnesi, harita işaretçilerini görüntüleyebilir. Karşılık gelen özelliklerini ayarlayarak aynı GMSMapView nesnesini veya GMSPanoramaView nesnesini aynı GMSMarker nesnesini 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, işaretçinin konumu ile GMSCameraView konumu arasındaki mesafenin bir işlevi olarak boyutlandırılır. Bu mesafe çok fazla olursa, işaretçi görüntülenemeyecek kadar küçük hale gelir ve gizlenir.

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

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Etkinlikler

Street View panoramasında gerçekleşen etkinlikleri (ör. bir kullanıcı panoramaya dokunduğunda) dinleyebilirsiniz. Etkinlikleri dinlemek için GMSPanoramaViewDelegate protokolünü uygulamanız gerekir. Etkinlikler için genel rehber ve GMSPanoramaViewDelegate için yöntemler listesine göz atın.