Google Haritalar Street View, dünyanın dört bir yanındaki yerleri, 360 derece, sokak düzeyinde görüntüler aracılığıyla keşfetmenize olanak tanır. Dünyanın önemli noktalarını keşfedebilir, doğal yelpazeleri görüntüleyebilir, bir gezide gezinebilir veya işletmenizin dışını gösterebilirsiniz.
Genel bakış
Google Street View, kapsama alanı boyunca belirlenmiş yollardan panoramik 360 derece görünüm sağlar. SDK aracılığıyla kullanılabilen kapsam, iOS için Google Haritalar uygulaması veya https://maps.google.com/
ile aynıdır. Street View hakkında bölümünde Street View hakkında daha fazla bilgi edinebilir ve etkileşimli bir haritada desteklenen alanları görebilirsiniz.
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 sağlar.
Street View görüntüleri panorama olarak döndürülür ve Street View görüntüleyici içinden (GMSPanoramaView
türü nesne) görüntülenir.
Street View panoramaları
Her Street View panoraması, tek bir konumdan tam 360 derece görünüm sağlayan bir resim veya resim kümesidir. Resimler, 360 derece yatay görünüm (tam sarma) ve 180 derece dikey görünüm (düz yönden aşağıya doğru) içeren eş mesafeli (Plate Carrée) projeksiyona uygundur. Oluşturulan 360 derecelik panoramik görüntü, kürenin iki boyutlu yüzeyine sarmalanmış bir küre üzerindeki projeksiyonu tanımlar.
Street View panoramaları, GMSPanoramaView
nesnesiyle görüntülenebilir. Bu nesne, merkezinde kamera yer alacak şekilde, panoramayı bir küre olarak oluşturacak bir görüntüleyici sağlar. Kameranın yönünü ve izleyiciyi özelleştiren birkaç özelliği 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 referans olarak kullanılamaz.panoramaID
en iyi şekilde, farklı Street View görüntülerine programatik erişim sağlamak için kullanılır. coordinate
- Bu,
CLLocationCoordinate2D
olarak ifade edilen tam konum. Bir panorama konumunun kalıcı olarak depolanması için veya haritadaki kullanıcı işlemlerini Street View görüntüsüne çevirmek için bircoordinate
kullanın.
Hem panoramaID
hem de coordinate
, GMSPanorama
nesnesinin özellikleri olarak depolanır. coordinate
veya panoramaID
öğesini kullanarak GMSPanoramaService
öğesinden bir GMSPanorama
isteyebilirsiniz. Sonuç olarak ortaya çıkan nesne, hem meta verilerin parçalarını hem de yakındaki panoramalara giden bir bağlantı dizisini 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 istiyor.moveNearCoordinate:radius
yöntemi benzer ancak koordinat çevresinde metre cinsinden bir arama yarıçapı belirtmenizi sağlar.moveNearCoordinate:source
yöntemi, kaynak belirtmenize olanak tanır. Street View'ı yalnızca dışarıdaki panoramaları arayacak şekilde kısıtlamak istiyorsanız kaynak yararlı olabilir. Varsayılan olarak, konumların panoramaları içeride veya dışarıdadır. Belirtilen konum için açık hava panoramaları bulunmayabilir.moveNearCoordinate:radius:source
yöntemi, hem bir yarıçap hem de bir kaynak belirtmenizi sağlar.
Street View görüntülerini görüntüleme
Street View görüntüleyici ekleme
Görüntüleyen eklemenin temel adımları şunlardır:
- (Bir kez) SDK'yı edinmek için Başlarken bölümündeki adımları uygulayın, bir anahtar edinin ve gerekli çerçeveleri ekleyin.
ViewController
oluşturun veya güncelleyin. Panorama bu görünüm denetleyicisi görünür olduğunda görüntülenirse,loadView
yöntemini kullanarak oluşturduğunuzdan emin olun.GMSPanoramaView
initWithFrame:
yöntemini kullanarak birGMSPanoramaView
sınıfı oluşturup örnekleyin. Bu, görünüm denetleyicisinin tek görünümü olarak kullanılacaksa, harita çerçevesi olarakCGRectZero
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;
).- Street View görüntüsünün konumunu
moveNearCoordinate:
gibi bir yöntem kullanarak belirleyin.
Aşağıdaki örnek, bir uygulamaya Street View görüntüleyici ekler.
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üleyeni özelleştirme
Kullanılabilecek hareketleri kısıtlayarak görüntüleyiciyi özelleştirebilirsiniz. Varsayılan olarak, kaydırma, yakınlaştırma ve komşu panoramalara gitme işlevleri etkindir.
Bağımsız hareketler, GMSPanoramaView
özellikleri üzerinden 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 programlı değişiklikler yine yapılabilir.
orientationGestures
- Kullanıcının dokunarak veya sürükleyerek kamerayı yeniden yönlendirip yönlendiremeyeceği. Kamerada 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 parmaklarınızı sıkıştırıp sıkış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 olup olmayacağını değiştirmesi. Kullanıcılar, gezinme bağlantılarına tek bir kez dokunabilir veya panoramaları değiştirmek için görünüme iki kez dokunarak navigasyon değişikliklerini
NO
olarak ayarlayabilir.
setAllGesturesEnabled:
yöntemiyle tüm hareketleri aynı anda etkinleştirebilir veya devre dışı bırakabilirsiniz.
Swift
panoView.setAllGesturesEnabled(false)
Objective-C
[panoView setAllGesturesEnabled:NO];
URL Şeması ile 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
değerine ayarlayarak, iOS için Google Haritalar uygulamasını sokak görünümü modunda comgooglemaps
URL Şeması ile başlatabilirsiniz. Street View'u başlatacak bir URL örneği aşağıda gösterilmiş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ı (POV)
GMSPanoramaCamera
, Street View kamerası bakış açısını başlık, dönüş ve yakınlaştırma kombinasyonu olarak ayarlamanıza olanak tanır.
Aşağıdaki snippet kümeleri, kamerayı güneye doğru ve biraz aşağı 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 bu resim için kameranın yönünü tanımlamaz.
Bu amaçla GMSOrientation
nesnesi iki özelliği tanımlar:
heading
, kamera konumunun çevresindeki döndürme açısını kuzeydeki gerçek dereceye göre tanımlar. Başlıklar saat yönünde ölçülür: doğru kuzey 0, doğu 90, güney 180, batı 270'tir.pitch
(varsayılan0
), kameranın ilk varsayılan perdesinden genellikle yukarı (ancak her zaman değil) düz olan "yukarı" veya "aşağı" açı farkını tanımlar. (Örneğin, bir tepede çekilen resim büyük olasılıkla yatay olmayan bir varsayılan perspektif gösterir.) Ses tonu açıları yukarıya bakan pozitif değerler (düz yönde +90 dereceye, varsayılan dönüş açısına göre dikey) ve aşağıya (-90 dereceden doğrudan ve varsayılan dönüş açısına göre) negatif değerlerle ölçülür.
Tarih aralığını
Street View, yakınlaştırma kullanarak farklı seviyelerde resim ayrıntılarını destekler. Yakınlaştırma seviyesini programatik olarak ayarlayabilirsiniz veya kullanıcılar yakınlaştırmak için parmaklarını sıkıştırarak izleyicideki düzeyi değiştirebilirler.
Kamerayı taşıma
GMSPanoramaView
adlı cihazı oluşturduktan sonra, yapılandırılmış veya varsayılan bir kamerası vardır. Bunu birkaç şekilde değiştirebilirsiniz. Kamerayı değiştirdiğinizde, elde edilen kamera hareketini animasyon olarak ayarlama seçeneğine sahip olursunuz. Animasyon, mevcut kamera özellikleri ile yeni kamera özellikleri arasında geçiş yapar.
GMSPanoramaCamera
nesnesini değiştirebilir ve GMSPanoramaView
öğesinin camera
özelliğinde ayarlayabilirsiniz. Bu işlem, kamerayı animasyon içermeyen yeni bir bakış açısına tutturur. Herhangi bir yön ve yakınlaştırma kombinasyonunu 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];
Bir geçişin animasyonu için animateToCamera:animationDuration:
yöntemini GMSPanoramaView
çağırabilirsiniz.
Ayrıca, Animasyon'u kullanarak kamerayı kontrol edebilirsiniz. Bu özellik,
GMSPanoramaView
, GMSPanoramaLayer
adresindeki özel CALayer
aracılığıyla kullanıma sunulmuştur.
Street View içindeki işaretçiler
GMSPanoramaView
nesnesi, harita işaretçilerini görüntüleyebilir. Karşılık gelen özelliklerini ayarlayarak, bir GMSMapView
veya GMSPanoramaView
nesnesinde aynı GMSMarker
nesnesini 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
konumu arasındaki mesafenin bir işlevi olarak ölçeklenir. Bu mesafe çok fazla olursa işaretleyici çok küçük olacak ve görüntüden gizlenecektir.
panoramaView
özelliğini GMSPanoramaView
öğesinden kaldırmak için nil
olarak ayarlayın.
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
Etkinlikler
Street View panoramasında gerçekleşen etkinlikleri (ör. bir kullanıcı panoramaya dokunduğunda) dinleyebilirsiniz. Etkinlikleri dinlemek için GMSPanoramaViewDelegate
protokolünü uygulamanız gerekir. Etkinliklerle ilgili genel rehber ve GMSPanoramaViewDelegate
üzerindeki yöntemler listesine bakın.