Street View

Platform seçin: Android iOS JavaScript

Google Haritalar Street View, dünyanın dört bir yanındaki yerleri 360 derecelik sokak seviyesindeki görüntülerle keşfetmenize olanak tanır. 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, kapsam alanındaki belirli yollardan panoramik 360 derece 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 başlıklı makalede Street View hakkında daha fazla bilgi edinebilir ve desteklenen bölgeleri etkileşimli bir haritada görebilirsiniz.

iOS için Haritalar SDK'sı, Google Haritalar Street View'da kullanılan görüntüleri elde etmek ve işlemek 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ündeki bir nesne olan Street View görüntüleyicisinden görüntülenir.

Street View panoramaları

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

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

Street View verilerine erişim

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 süreli veya sabit kodlu 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. Bir panorama konumunu kalıcı olarak depolamak veya haritada kullanıcı işlemlerini Street View resmine 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'den GMSPanorama isteğinde bulunabilirsiniz. Sonuç olarak elde edilen nesne hem meta veri parçalarını hem de yakındaki panoramalara ait bir bağlantı dizisi içerir.

Panoramanın konumunu ayarlama

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

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

  • 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. Street View'u yalnızca dışarıdaki panoramaları arayacak şekilde kısıtlamak istiyorsanız kaynak kullanışlıdır. Konumların panoramaları varsayılan olarak iç veya dış mekandır. Belirtilen konum için açık hava panoramalarının bulunmayabileceğini unutmayın.

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

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. (Tek seferlik) SDK'yı almak, anahtar edinmek ve gerekli çerçeveleri eklemek için Başlangıç bölümündeki adımları uygulayın.
  2. ViewController oluşturun veya güncelleyin. Bu görüntü kontrolörü görünür hale geldiğinde 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 sınıfı örneklendirin. Bu, görüntü kontrol cihazının 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. 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ılabilen hareketleri kısıtlayarak izleyiciyi özelleştirebilirsiniz. Varsayılan olarak kaydırma, yakınlaştırma ve bitişik panoramalara gitme özellikleri etkindir. Hareketler, GMSPanoramaView öğesinin özellikleri aracılığıyla 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 yapmaya devam edebilirsiniz.

orientationGestures
Kullanıcı, 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 olarak ayarlayın.
zoomGestures
Kullanıcının yakınlaştırmak için iki parmağını yakınlaştırıp uzaklaştırıp uzaklaştıramayacağını belirtir. Yakınlaştırmayı devre dışı bırakmak için NO değerine 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 tek bir dokunuşla veya görünüme iki kez dokunarak panoramaları değiştirebilir. Gezinme değişikliklerini devre dışı bırakmak için NO olarak ayarlayın.

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ı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 iOS için Google Haritalar uygulamasını comgooglemaps URL şemasıyla Street View modunda başlatabilirsiniz. Street View'u başlatacak bir URL örneği aşağıda 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 kümeleri, kamerayı güneye ve hafifçe aşağıya 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 söz konusu resimde kameranın yönünü tanımlamaz. Bu amaçla GMSOrientation nesnesi iki özellik tanımlar:

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

Tarih aralığını

Street View, yakınlaştırma özelliğiyle farklı düzeylerde görüntü ayrıntılarını destekler. Yakınlaştırma düzeyini programatik olarak ayarlayabilir veya kullanıcılar yakınlaştırmak için iki parmak ucunu yakınlaştırıp uzaklaştırarak görüntüleyicideki düzeyi değiştirebilir.

Kamerayı hareket ettirme

GMSPanoramaView'yi oluşturduktan ve yapılandırılmış veya varsayılan bir kamera ekledikten sonra bunu birkaç yöntemden biriyle değiştirebilirsiniz. Kamerayı değiştirdiğinizde, ortaya çıkan kamera hareketini animasyonlu hale getirebilirsiniz. Animasyon, mevcut kamera özellikleri ile yeni kamera özellikleri arasında geçiş yapar.

GMSPanoramaCamera nesnesini değiştirebilir ve GMSPanoramaView'un camera mülkünde ayarlayabilirsiniz. Bu işlem, kamerayı animasyon olmadan yeni bakış açısına getirir. Yön ve yakınlaştırma kombinasyonlarının herhangi birini yapılandırmak için bir 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 nesnesinin animateToCamera:animationDuration: yöntemini çağırarak geçişi animasyonlu hale getirebilirsiniz. Ayrıca Core Animation'i kullanarak kamerayı kontrol edebilirsiniz. Bu özellik, GMSPanoramaView tarihinde GMSPanoramaLayer'de özel CALayer aracılığıyla kullanıma sunulmuştur.

Street View'daki işaretçiler

GMSPanoramaView nesnesi, harita işaretçileri 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çi boyutu, işaretçinin konumu ile GMSCameraView'nin konumu arasındaki mesafeye göre ölçeklenir. Bu mesafe çok artarsa işaretçi gösterilemeyecek kadar küçük olur ve görüntüden kaldırılır.

panoramaView özelliğini nil olarak ayarlayarak GMSPanoramaView'den kaldırı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 dokunduğunda) dinleyebilirsiniz. Etkinlikleri dinlemek için GMSPanoramaViewDelegate protokolünü uygulamanız gerekir. Genel etkinlikler kılavuzuna ve GMSPanoramaViewDelegate adresindeki yöntemlerin listesine bakın.