Google Haritalar Street View, sokak düzeyinde sunulan 360 derece görüntülerle dünyanın dört bir yanındaki yerleri keşfetmenize olanak tanır. Dünyadaki önemli noktaları keşfedebilir, doğal yürüyüşler yapabilir, bir gezide gezinebilir ya da işletmenizin dışını gösterebilirsiniz.
Genel bakış
Google Street View, belirlenmiş yol boyunca uzanan bölgenin 360 derecelik panoramik manzaralarını sunar. 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 başlıklı makalede
Street View hakkında daha fazla bilgi edinebilir ve desteklenen alanları etkileşimli bir harita üzerinde görebilirsiniz.
iOS için Haritalar SDK'sı, Google Haritalar Street View'da kullanılan görüntüleri edinmek ve değiştirmek için Street View hizmeti sunar.
Street View görüntüleri panoramik olarak döndürülür ve
Street View görüntüleyici içinden (GMSPanoramaView
türünde bir 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 grubudur. Resimler, 360 derece yatay görünüm (tam sarmalama) ve 180 derece dikey görünüm (düzten dik yönde) içeren eş mesafeli (plate Carrée) projeksiyona uygundur. Ortaya çıkan 360 derecelik panoramik görüntü, kürenin iki boyutlu yüzeyine sarılmış bir küre üzerinde projeksiyon tanımlar.
Street View panoramaları GMSPanoramaView
nesnesiyle görüntülenebilir. Bu nesne, ortasında bir kamera olacak şekilde, panoramayı küre olarak oluşturacak bir görüntüleyen sağlıyor. 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, sabit kodlu bir referans olarak uygun değildir.panoramaID
, en iyi şekilde farklı Street View görüntülerine programatik erişim sağlamak için kullanılır. coordinate
- Bu resmin tam konumu;
CLLocationCoordinate2D
olarak belirtilir. Panorama konumunun kalıcı olarak depolanması veya haritadaki kullanıcı işlemlerinin Street View görüntüsüne dönüştürülmesi için bircoordinate
kullanın.
Hem panoramaID
hem de coordinate
, GMSPanorama
nesnesinin özellikleri olarak depolanır. coordinate
veya panoramaID
özelliğini kullanarak GMSPanoramaService
öğesinden GMSPanorama
isteyebilirsiniz. Sonuçta ortaya çıkan nesne, hem meta verilerin bir parçasını hem de yakındaki panoramalara giden bir bağlantı dizisi içerir.
Panoramanın konumunu ayarlama
Street View panoramasının konumu koordinat doğrultusunda ayarlanabilir.
moveNearCoordinate
yöntemi, koordinatın yakınında bir panorama ister.moveNearCoordinate:radius
yöntemi benzerdir ancak koordinat etrafında metre cinsinden bir arama yarıçapı belirtmenizi sağlar.moveNearCoordinate:source
yöntemi, kaynak belirtmenize olanak tanır. Street View'u yalnızca dışarıdaki panoramikleri arayacak şekilde sınırlamak istiyorsanız bir kaynak işinize yarayabilir. Varsayılan olarak, konumların panoramik görüntüleri içinde veya dışındadır. Belirtilen konum için açık hava panoramalarının bulunmayabileceğini unutmayın.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
İzleyici eklemeyle ilgili temel adımlar şunlardır:
- (Bir kez) SDK'yı edinmek için Başlangıç 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 hale geldiğinde görüntülenirse,loadView
yöntemini kullanarak oluşturduğunuzdan emin olun.GMSPanoramaView
initWithFrame:
yöntemini kullanarak birGMSPanoramaView
sınıfı oluşturun ve örnek oluşturun. 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;
).- 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üleyiciyi özelleştirme
Hangi hareketlerin mevcut olduğunu kısıtlayarak görüntüleyiciyi özelleştirebilirsiniz. Varsayılan olarak, kaydırma, yakınlaştırma ve bitişik 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ışıyken programatik değişiklikler 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 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 olacağını değiştirip değiştiremeyeceği. Kullanıcılar, gezinme bağlantılarına bir kez dokunarak veya panoramaları değiştirmek için görünüme iki kez dokunarak
NO
olarak ayarlayabilir.
setAllGesturesEnabled:
yöntemini kullanarak 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 kullanıma sunma
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ı ile sokak görünümü 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ı (POV)
GMSPanoramaCamera
, Street View kamerasının perspektifini başlık, perde ve yakınlaştırmanın bir kombinasyonu olarak ayarlamanıza olanak tanır.
Aşağıdaki snippet grupları kamerayı güneye 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 resmin kamera odağının yerleşimini tanımlar, ancak bir görüntü için kameranın yönünü tanımlamaz.
Bu amaçla GMSOrientation
nesnesi iki özellik tanımlar:
heading
, kamera konumunun etrafındaki döndürme açısını gerçek kuzeye göre derece cinsinden 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 başlangıçtaki varsayılan perdesinden "yukarı" veya "aşağı" açısı sapmasını tanımlar. Bu değer genellikle düz (ancak her zaman değil) düzdür. (Örneğin, bir tepede çekilen resimde, yatay olmayan varsayılan bir perde gösteriliyor.) Öneri açıları ölçülür (yukarıya doğru 90 derece yukarıya, varsayılan perdeye göre dikey) ve aşağıya bakıp (-90 dereceye denk gelir) varsayılan olarak ölçülür.
Tarih aralığını
Street View, yakınlaştırma amacıyla farklı resim ayrıntı düzeylerini destekler. Yakınlaştırma düzeyini programatik olarak ayarlayabilirsiniz veya kullanıcılar yakınlaştırmak için sıkıştırarak izleyicideki düzeyi değiştirebilir.
Kamerayı hareket ettirme
GMSPanoramaView
cihazını oluşturduktan sonra, yapılandırılmış veya varsayılan bir kameraya sahip
olduktan sonra bunu birkaç şekilde değiştirebilirsiniz. Kamerayı değiştirdiğinizde, elde edilen kamera hareketini canlandırma 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
nesnesinin camera
özelliğinde ayarlayabilirsiniz. Bu işlem, kamerayı animasyon olmadan yeni
görüntü noktasına çeker. Yön ve yakınlaştırma kombinasyonunu yapılandırmak için 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
işleminin animateToCamera:animationDuration:
yöntemini çağırarak bir geçişin animasyonunu oluşturabilirsiniz.
Ayrıca, Temel Animasyon'u kullanarak kamerayı da kontrol edebilirsiniz. Bu özellik, GMSPanoramaView
GMSPanoramaLayer
adresindeki özel CALayer
üzerinden kullanılabilir.
Street View'daki işaretçiler
GMSPanoramaView
nesnesi, harita işaretçilerini görüntüleyebilir. Karşılık gelen özelliklerini ayarlayarak aynı GMSMapView
nesnesini veya GMSPanoramaView
nesnesini 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 boyutlandırılır. Bu mesafe çok fazla olursa, işaretçi görüntülenemeyecek kadar küçük hale gelir ve gizlenir.
GMSPanoramaView
özelliğini kaldırmak için panoramaView
özelliğini 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. Etkinlikler için genel rehber ve GMSPanoramaViewDelegate
için yöntemler listesine göz atın.