Street View

Platform seçin: Android iOS JavaScript

Google Haritalar Street View, dünyanın dört bir yanındaki yerleri 360 derecelik sokak düzeyinde görüntülerle keşfetmenize olanak tanır. Dünyanın önemli noktalarını 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, kapsama alanındaki belirli yollardan panoramik 360 derece görüntüler 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 alanları 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 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 360 derecelik tam bir görünüm sunan bir resim veya resim grubudur. Resimler, 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 söz konusu 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, panoramik görüntüyü ortasında 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ş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 uygun değildir. panoramaID, farklı Street View resimlerine programatik erişim sağlamak için en iyi şekilde kullanılır.
coordinate
Bu resmin tam konumu, CLLocationCoordinate2D olarak ifade edilir. Bir panorama konumunun kalıcı olarak depolanması veya haritadaki kullanıcı işlemlerinin Street View resmine dönüştürülmesi 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 giden 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üleyeni ekleme

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

  1. (Bir kez) 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. Panorama, bu görüntü kontrolörü görünür hale geldiğinde gösterilecekse 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ü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. 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 görüntüleyiciyi özelleştirebilirsiniz. Yakınlaştırma, uzaklaştırma ve bitişik panoramalara gitme işlemleri varsayılan olarak etkindir. Hareketler, GMSPanoramaView özellikleri aracılığıyla kontrol edilir. Bu mülkler, kullanıcı tarafından kontrol edilen hareketleri etkinleştirir veya devre dışı bırakır. Hareket devre dışı bırakılsa bile 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 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ğı. 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 tek dokunabilir veya panoramaları değiştirmek için görünüme iki kez dokunabilir. 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 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ı dokümanlarına bakın.

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

Street View konumları ve bakış açısı

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 grupları, 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 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: Doğru 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 (varsayılan eğime dik olarak +90 dereceye kadar) ve aşağı bakan negatif değerlerle (varsayılan eğime dik olarak -90 dereceye kadar) ölçülür.

Tarih aralığını

Street View, yakınlaştırma özelliği sayesinde farklı düzeylerde görüntü ayrıntısı sunar. Yakınlaştırma düzeyini programatik olarak ayarlayabilir veya kullanıcılar yakınlaştırmak için iki parmaklarını 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 getirme 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'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 öğesinin animateToCamera:animationDuration: yöntemini çağırarak geçişi animasyonlu hale getirebilirsiniz. Ayrıca, Core Animation'i kullanarak kamerayı kontrol edebilirsiniz. Bu özellik, GMSPanoramaView'daki özel CALayer aracılığıyla sunulur,GMSPanoramaLayer.

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'ün 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 mülkünü GMSPanoramaView'den kaldırmak için panoramaView mülkünü 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 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.