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ç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 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:
- (Bir kez) 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. Panorama, bu görüntü kontrolörü görünür hale geldiğinde gösterilecekseloadView
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ünüm denetleyicisinin 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 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ı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 (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.