
Google Haritalar Street View, dünyanın dört bir yanındaki yerleri 360 derecelik sokak seviyesinde 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 aracılığıyla 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 almak 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 bir görünüm sunan bir resim veya resim grubudur. Görüntüler, 360 derece yatay görüntü (tam bir sarma) ve 180 derece dikey görüntü (doğrudan yukarıdan doğrudan aşağıya) içeren eş dikdörtgen (Plate Carrée) projeksiyonuna uygundur. Elde edilen 360 derecelik panorama, görüntünün 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
panoramaIDzaman 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,
CLLocationCoordinate2Dolarak ifade edilir. Bir panorama konumunu kalıcı olarak depolamak veya haritada kullanıcı işlemlerini Street View resmine dönüştürmek içincoordinatekullanı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.
moveNearCoordinateyöntemi, koordinatın yakınında bir panorama ister.moveNearCoordinate:radiusyöntemi benzerdir ancak koordinatın etrafında metre cinsinden bir arama yarıçapı belirtmenize olanak tanır.moveNearCoordinate:sourceyö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:sourceyö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:
- (Bir kez) SDK'yı almak, anahtar edinmek ve gerekli çerçeveleri eklemek için Başlangıç bölümündeki adımları uygulayın.
ViewControlleroluşturun veya güncelleyin. Bu görüntü kontrolörü görünür hale geldiğinde panorama gösterilecekse panoramayıloadViewyönteminde oluşturduğunuzdan emin olun.GMSPanoramaViewinitWithFrame:yöntemini kullanarak birGMSPanoramaViewsınıfı oluşturun ve sınıfı örneklendirin. Bu, görüntü kontrol cihazının tek görünümü olarak kullanılacaksaCGRectZeroharitanın çerçevesi olarak kullanılabilir. Harita otomatik olarak yeniden boyutlandırılır.GMSPanoramaViewnesnesini, görünüm denetleyicisinin görünümü olarak ayarlayın. Örneğin,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
NOolarak 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
NOdeğ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
NOolarak 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ı 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ırmanın bir 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 hale gelir 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.