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çincoordinate
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:
- (Tek seferlik) SDK'yı almak, anahtar edinmek ve gerekli çerçeveleri eklemek için Başlangıç bölümündeki adımları uygulayın.
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.GMSPanoramaView
initWithFrame:
yöntemini kullanarak birGMSPanoramaView
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ılacaksaCGRectZero
haritanın çerçevesi olarak kullanılabilir. Harita otomatik olarak yeniden boyutlandırılır.GMSPanoramaView
nesnesini görünüm denetleyicisinin görünümü olarak ayarlayın (ör.self.view = panoView;
).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ılan0
), 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.