Google Haritalar Street View, dünyanın dört bir yanındaki yerleri, sokak düzeyinde 360 derecelik görüntüler aracılığıyla keşfetmenize olanak tanır. Dünyanın önemli noktalarını keşfedebilir, doğal gezginleri görüntüleyebilir, gezide gezebilir veya işletmenizin dış mekânını gösterebilirsiniz.
Genel bakış
Google Street View, kapsama alanı boyunca belirlenen yollardan 360 derece panoramik manzaralar sunar. SDK aracılığıyla sunulan kapsam, iOS için Google Haritalar uygulamasının veya https://maps.google.com/
uygulamasının kapsamıyla aynıdır. Street View hakkında bölümünden Street View hakkında daha fazla bilgi edinebilir ve desteklenen alanları etkileşimli harita üzerinde 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 Street View hizmeti sunar.
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 tam 360 derecelik görünüm sağlayan bir resim veya görüntü kümesidir. Resimler, 360 derece yatay görünüm (tüm alanı kaplayan) ve 180 derece dikey görünüm (düzden en doğruya kadar) içeren eş mesafeli dikdörtgen (Plate Carrée) projeksiyonuna uygundur. Ortaya çıkan 360 derecelik panorama, görüntünün iki boyutlu yüzeyine sarıldığı bir küre üzerinde bir projeksiyon tanımlar.
Street View panoramaları GMSPanoramaView
nesnesiyle görüntülenebilir. Bu nesne, ortasında bir kamera bulunan ve panoramayı küre halinde görüntüleyen bir görüntüleyici sağlar. Kamera yönünün yanı sıra görüntüleyiciyi özelleştiren çeşitli özellikleri de programatik olarak kontrol edebilirsiniz.
Street View verilerine erişme
Street View panoramaları iki meta veri parçasından biriyle tanımlanır:
panoramaID
- Bir Street View panoramasının benzersiz kimliği. Bu
panoramaID
zaman içinde değişebilir ve uzun vadeli ya da sabit kodlu bir referans olarak uygun değildir.panoramaID
, farklı Street View görüntülerine programatik erişim sağlamak için idealdir. 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 özelliği olarak depolanır. coordinate
veya panoramaID
kullanarak GMSPanoramaService
aracından GMSPanorama
isteyebilirsiniz. Sonuçta elde edilen nesne, her iki meta veri parçasının yanı sıra yakındaki panoramalara yönlendiren bir dizi bağlantı içerecektir.
Panoramanın konumu ayarlanıyor
Street View panoramasının konumu koordinata dayalı olarak ayarlanabilir.
moveNearCoordinate
yöntemi, koordinatın yakınında bir panorama ister.moveNearCoordinate:radius
yöntemi benzerdir, ancak koordinat çevresinde metre cinsinden bir arama yarıçapı belirtmenize olanak tanır.moveNearCoordinate:source
yöntemi, kaynak belirtmenizi sağlar. Street View'ı yalnızca dışarıdaki panoramaları arayacak şekilde kısıtlamak istiyorsanız kaynak kullanabilirsiniz. Varsayılan olarak, konumların panoramaları içinde veya dışındadır. Belirtilen konum için açık hava panoramalarının mevcut olmayabileceğini unutmayın.moveNearCoordinate:radius:source
yöntemi, hem yarıçap hem de kaynak belirtmenizi sağlar.
Street View görüntülerini görüntüleme
Street View görüntüleyici ekleme
İzleyici eklemek için 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. Bu görünüm denetleyicisi görünür olduğunda panorama gösterilecekseloadView
yöntemiyle oluşturduğunuzdan emin olun.GMSPanoramaView
initWithFrame:
yöntemini kullanarak birGMSPanoramaView
sınıfı oluşturun ve somutlaştırın. Bu, görünüm denetleyicisinin tek görünümü olarak kullanılıyorsa haritanın ç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 ayarlayın.
Aşağıdaki örnek, bir uygulamaya Street View görüntüleyicisi eklemektedir.
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ı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 özellikleri etkindir.
Her bir hareket GMSPanoramaView
ürününün özellikleriyle 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 yapılabilir.
orientationGestures
- Kullanıcının dokunarak veya sürükleyerek kamera yönünü değiştirip değiştiremeyeceğini belirtir. Kameranın yön değişikliklerini devre dışı bırakmak için ayarı
NO
yapın. zoomGestures
- Kullanıcının yakınlaştırmak için iki parmak ucunuzu yakınlaştırıp uzaklaştıramayacağını belirtir. Yakınlaştırmayı devre dışı bırakmak için ayarı
NO
yapı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 dokunabilir veya panoramaları
değiştirmek için görünüme iki kez dokunabilir. "
NO
" olarak ayarlanan gezinme değişikliklerini devre dışı bırakabilir.
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ı ile Street View'ı 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ı ile sokak görünümü modunda başlatabilirsiniz. Street View'ı başlatacak URL'nin bir ö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 bakış açısını
başlık, eğim 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önlendirecektir.
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 bu görüntü için kameranın yönünü tanımlamaz.
Bu amaçla, GMSOrientation
nesnesi iki özelliği tanımlar:
heading
, kamera konumu çevresindeki dönüş 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 genellikle (ancak her zaman değil) yatay olan ilk varsayılan perdesindeki "yukarı" veya "aşağı" açı varyansını tanımlar. (Örneğin, tepede çekilen bir resim büyük olasılıkla yatay olmayan bir varsayılan perde gösterecektir.) Ses perdesi açıları, yukarı bakan pozitif değerlerle (yukarıdan +90 derece dik ve varsayılan perdeye dik yönde) ve negatif değerlerle (-90 derece aşağıya doğru ve varsayılan perdeye dik) ölçülür.
Tarih aralığını
Sokak Görünümü, zum kullanılarak farklı görüntü ayrıntısı düzeylerini destekler. Yakınlaştırma düzeyini programatik olarak ayarlayabilirsiniz veya kullanıcılar, yakınlaştırmak için parmaklarıyla sıkıştırma hareketi yaparak görüntüleyicideki düzeyi değiştirebilirler.
Kamerayı hareket ettirme
Oluşturulan GMSPanoramaView
kamerada yapılandırılmış veya varsayılan kamera bulunuyor. Kamerayı birkaç şekilde değiştirebilirsiniz. Kamerayı değiştirdiğinizde ortaya çıkan kamera
hareketini canlandırma seçeneğiniz vardır. Animasyon, mevcut kamera özellikleri ile yeni kamera özellikleri arasında interpolasyon yapar.
GMSPanoramaCamera
nesnesini değiştirebilir ve GMSPanoramaView
öğesinin camera
özelliğinde ayarlayabilirsiniz. Bu işlem, kamerayı animasyon olmadan yeni bakış
noktasına tutturur. Herhangi bir 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
animateToCamera:animationDuration:
yöntemini çağırarak bir geçişi canlandırabilirsiniz.
Ayrıca, Core Animation'ı kullanarak kamerayı da kontrol edebilirsiniz. Bu özellik, GMSPanoramaView
GMSPanoramaLayer
adresindeki özel CALayer
aracılığıyla sunulmaktadır.
Sokak Görünümü'ndeki işaretçiler
GMSPanoramaView
nesnesi harita işaretçilerini görüntüleyebilir. Karşılık gelen ö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çiler, boyutu, işaretçinin konumu ile GMSCameraView
konumu arasındaki mesafenin bir işlevi olarak ölçeklenir. Bu mesafe çok artarsa işaretçi görüntülenemeyecek kadar küçük olur ve görünmez.
panoramaView
özelliğini GMSPanoramaView
ürününden kaldırmak için nil
olarak ayarlayın.
Swift
marker.panoramaView = nil
Objective-C
marker.panoramaView = nil;
Etkinlikler
Bir kullanıcının panoramaya dokunması gibi Street View panoramasında gerçekleşen etkinlikleri dinleyebilirsiniz. Etkinlikleri dinlemek için GMSPanoramaViewDelegate
protokolünü uygulamanız gerekir. Genel etkinlik kılavuzuna ve GMSPanoramaViewDelegate
yöntemlerinin listesine bakın.