Street View

Platform seçin: Android iOS JavaScript

Google Haritalar Street View, 360 derecelik sokak düzeyinde görüntülerle dünyanın dört bir yanındaki yerleri keşfetmenize olanak tanır. Dünyanın önemli noktalarını keşfedebilir, doğa harikalarını görüntüleyebilir, bir geziye çıkabilir veya işletmenizin dışını gösterebilirsiniz.

Genel Bakış

Google Street View, hakkında haber yapılan bölgedeki belirli yollardan panoramik 360 derecelik görünümler sunar. SDK aracılığıyla sunulan kapsam, iOS için Google Haritalar uygulaması veya https://maps.google.com/ ile aynıdır. Street View hakkında daha fazla bilgi edinmek ve desteklenen alanları etkileşimli bir harita üzerinde görmek için Street View hakkında sayfasını ziyaret edebilirsiniz.

iOS için Haritalar SDK'sı, Google Haritalar Street View'da kullanılan görüntüleri almak ve değiştirmek için bir Street View hizmeti sunar. 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üleyicinin içinden 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 resim grubudur. Resimler, 360 derecelik yatay görünüm (tam bir dönüş) ve 180 derecelik dikey görünüm (tam yukarıdan tam aşağıya) içeren eş dikdörtgen (Plate Carrée) projeksiyonuna uygundur. Elde edilen 360 derecelik panorama, görüntünün iki boyutlu yüzeyine sarıldığı bir küre üzerindeki projeksiyonu tanımlar.

Street View panoramaları GMSPanoramaView nesnesiyle görüntülenebilir. Bu nesne, panoramayı merkezinde bir kamera bulunan bir 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
Street View panoramasının benzersiz kimliği. Bu panoramaID zaman içinde değişebilir ve uzun vadeli veya sabit kodlu bir referans olarak kullanıma uygun değildir. panoramaID, farklı Street View görüntülerine programatik erişim sağlamak için en iyi seçenektir.
coordinate
Bu resmin tam konumu, CLLocationCoordinate2D olarak ifade edilir. Bir panorama konumunun kalıcı depolama alanı için veya haritadaki kullanıcı işlemlerini bir 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. coordinate veya panoramaID kullanarak GMSPanoramaService üzerinden GMSPanorama isteğinde bulunabilirsiniz. Sonuçta elde edilen nesne, her iki meta veri parçasını ve yakındaki panoramalara bağlantıların bir dizisini içerir.

Panoramanın konumunu ayarlama

Street View panoraması, koordinata göre ayarlanabilir.

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

  • moveNearCoordinate:radius yöntemi de 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. Street View'u yalnızca dışarıdaki panoramaları arayacak şekilde kısıtlamak istiyorsanız kaynak kullanışlıdır. Varsayılan olarak, konumların panoramaları içeride veya dışarıda olur. Belirtilen konum için dış mekan panoramaları bulunmayabilir.

  • 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üleyicisi ekleme

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

  1. (Bir kez) SDK'yı edinmek, anahtar almak ve gerekli çerçeveleri eklemek için Başlarken bölümündeki adımları uygulayın.
  2. ViewController oluşturun veya güncelleyin. Bu görünüm denetleyicisi görünür olduğunda panorama gösterilecekse panoramayı loadView yönteminde oluşturduğunuzdan emin olun.
  3. GMSPanoramaView initWithFrame: yöntemini kullanarak bir GMSPanoramaView sınıfı oluşturun ve örneklendirin. Bu, görünüm denetleyicisinin tek görünümü olarak kullanılacaksa haritanın çerçevesi olarak CGRectZero kullanılabilir. Harita otomatik olarak yeniden boyutlandırılır.
  4. GMSPanoramaView nesnesini görünüm denetleyicinin 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

Kullanılabilir hareketleri kısıtlayarak görüntüleyiciyi özelleştirebilirsiniz. Varsayılan olarak kaydırma, yakınlaştırma ve bitişik panoramalara gitme özellikleri etkindir. Tek tek hareketler, GMSPanoramaView ö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 programatik değişiklikler yapılabilir.

orientationGestures
Kullanıcının dokunarak veya sürükleyerek kamerayı yeniden yönlendirip yönlendiremeyeceği. Kameranın yön değişikliklerini devre dışı bırakmak için NO değerine ayarlayın.
zoomGestures
Kullanıcının iki parmakla yakınlaştırma yapıp yapamayacağını belirtir. Yakınlaştırmayı devre dışı bırakmak için NO olarak ayarlayın.
navigationGestures
Kullanıcının hangi panoramayı görebileceğini değiştirip değiştiremeyeceği. Kullanıcılar, gezinme bağlantılarına tek dokunarak veya görünümü iki kez 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];
      

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

Google Street View görüntüleri, iOS için Google Haritalar uygulamasından görüntülenebilir. comgooglemaps URL şemasıyla iOS için Google Haritalar uygulamasını Street View modunda başlatmak için mapmode parametresini streetview olarak ayarlayın. Street View'u başlatacak bir URL örneği aşağıda gösterilmiş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ırmanın bir 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 resim için kamera odağının yerleşimini tanımlar ancak o resim için kameranın yönünü tanımlamaz. Bu amaçla, GMSOrientation nesnesi iki özellik tanımlar:

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

Tarih aralığını

Street View, yakınlaştırma özelliğini kullanarak farklı düzeylerde görüntü ayrıntılarını destekler. Yakınlaştırma seviyesini programatik olarak ayarlayabilirsiniz. Kullanıcılar da görüntüleyicide iki parmakla yakınlaştırma hareketi yaparak seviyeyi değiştirebilir.

Kamerayı hareket ettirme

GMSPanoramaView oluşturduktan ve yapılandırılmış veya varsayılan bir kamerası olduktan sonra bunu birkaç şekilde değiştirebilirsiniz. Kamerayı değiştirdiğinizde, ortaya çıkan kamera hareketine animasyon ekleme seçeneğiniz vardır. Animasyon, mevcut kamera özellikleri ile yeni kamera özellikleri arasında interpolasyon yapar.

GMSPanoramaCamera nesnesini değiştirebilir ve GMSPanoramaView'nin camera özelliğinde ayarlayabilirsiniz. Bu işlem, kamerayı animasyon olmadan yeni bakış açısına geçirir. Yön ve yakınlaştırmanın herhangi bir 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 sınıfının animateToCamera:animationDuration: yöntemini çağırarak geçişe animasyon ekleyebilirsiniz. Ayrıca Core Animation'ı kullanarak kamerayı kontrol edebilirsiniz. Bu, GMSPanoramaView, GMSPanoramaLayer tarihinde özel CALayer aracılığıyla kullanıma sunulur.

Street View'daki işaretçiler

GMSPanoramaView nesnesi, harita işaretçilerini gösterebilir. İlgili ö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, işaretçinin konumu ile GMSCameraView'nin konumu arasındaki mesafeye göre ölçeklendirilir. Bu mesafe çok fazla olursa işaretçi, görüntülenemeyecek kadar küçük hale gelir ve görünümden gizlenir.

panoramaView özelliğini nil olarak ayarlayarak GMSPanoramaView öğesinden kaldırın.

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

Etkinlikler

Kullanıcının panoramaya dokunması gibi Street View panoraması üzerinde gerçekleşen etkinlikleri dinleyebilirsiniz. Etkinlikleri dinlemek için GMSPanoramaViewDelegate protokolünü uygulamanız gerekir. Etkinliklerle ilgili genel kılavuzu ve GMSPanoramaViewDelegate sayfasındaki yöntem listesini inceleyin.