
Google Haritalar Street View, 360 derecelik sokak düzeyinde görüntülerle dünyanın dört bir yanındaki yerleri keşfetmenize olanak tanır. Dünyanın önemli noktalarını keşfedebilir, doğa harikalarını görüntüleyebilir, bir geziye çıkabilir veya işletmenizin dışını gösterebilirsiniz.
Genel Bakış
Google Street View, hakkında haber yapılan bölgedeki belirli yollardan panoramik 360 derecelik 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 sayfasında Street View hakkında daha fazla bilgi edinebilir ve desteklenen bölgeleri etkileşimli bir harita üzerinde görebilirsiniz.
iOS için Haritalar SDK'sı, Google Haritalar Street View'da kullanılan görüntüleri elde etmek ve değiştirmek için bir Street View hizmeti sunar. Street View görüntüleri panorama olarak döndürülür ve GMSPanoramaView türünde bir nesne olan Street View görüntüleyiciden görüntülenir.
Street View panoramaları
Her Street View panoraması, tek bir konumdan tam 360 derecelik bir görünüm sağlayan bir resim veya resim grubudur. Resimler, 360 derecelik yatay görünüm (tam bir dönüş) ve 180 derecelik dikey görünüm (tam yukarıdan tam aşağıya) içeren eş dikdörtgen (Plate Carrée) projeksiyonuna uygundur. Elde edilen 360 derecelik panorama, görüntünün iki boyutlu yüzeyine sarıldığı bir küre üzerindeki projeksiyonu tanımlar.
Street View panoramaları GMSPanoramaView nesnesiyle görüntülenebilir. Bu nesne, panoramayı merkezinde bir kamera bulunan bir küre olarak oluşturacak bir görüntüleyici sağlar. Kameranın yönünü ve görüntüleyiciyi ö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 vadeli veya sabit kodlu bir referans olarak kullanıma uygun değildir.panoramaID, farklı Street View görüntülerine programatik erişim sağlamak için en iyi seçenektir. coordinate- Bu resmin tam konumu,
CLLocationCoordinate2Dolarak ifade edilir. Panorama konumunun kalıcı depolama alanı için veya haritadaki kullanıcı işlemlerini Street View görüntüsüne dönüştürmek içincoordinatekullanın.
Hem panoramaID hem de coordinate, GMSPanorama nesnesinin özellikleri olarak depolanır. GMSPanorama isteğinde bulunmak için GMSPanoramaService'i kullanabilirsiniz. Bu işlem için coordinate veya panoramaID'i kullanabilirsiniz. Sonuçta elde edilen nesne, her iki meta veri parçasını ve yakındaki panoramalara bağlantı dizisini 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 de 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. Kaynak, Street View'un yalnızca dışarıdaki panoramaları aramasını istiyorsanız kullanışlıdır. Varsayılan olarak, konumların panoramaları iç veya dış mekandır. Belirtilen konum için dış mekan panoramaları bulunmayabilir.moveNearCoordinate:radius:sourceyöntemi, hem yarıçap hem de kaynak belirtmenize olanak tanır.
Street View görüntülerini görüntüleme
Street View görüntüleyici ekleme
İzleyici eklemenin temel adımları şunlardır:
- SDK'yı edinmek, anahtar almak ve gerekli çerçeveleri eklemek için Başlarken bölümündeki adımları (bir kez) uygulayın.
ViewControlleroluşturun veya güncelleyin. Panorama, bu görünüm denetleyicisi görünür hale geldiğinde gösterilecekse panoramayıloadViewyönteminde oluşturduğunuzdan emin olun.GMSPanoramaViewinitWithFrame:yöntemini kullanarak birGMSPanoramaViewsınıfı oluşturun ve ö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.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ılabilir hareketleri kısıtlayarak görüntüleyiciyi özelleştirebilirsiniz. Varsayılan olarak kaydırma, yakınlaştırma ve bitişik panoramalara gitme özellikleri etkindir.
Hareketler, GMSPanoramaView özellikleri aracılığıyla ayrı ayrı kontrol edilir.
Bu özellikler, kullanıcı kontrollü hareketleri etkinleştirir veya devre dışı bırakır. Hareket devre dışı bırakıldığında programatik değişiklikler yapılmaya devam edebilir.
orientationGestures- Kullanıcının kamerayı dokunarak veya sürükleyerek yeniden yönlendirip yönlendiremeyeceği. Kameranın yön değişikliklerini devre dışı bırakmak için
NOdeğerine ayarlayın. zoomGestures- Kullanıcının iki parmakla yakınlaştırma yapıp yapamayacağını belirtir. Yakınlaştırmayı devre dışı bırakmak için
NOolarak ayarlayın. navigationGestures- Kullanıcının hangi panoramanın görüneceğini değiştirip değiştiremeyeceği. Kullanıcılar, panoramaları değiştirmek için gezinme bağlantılarına bir kez dokunabilir veya görünüme iki kez dokunabilir. 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];
Street View'u URL şemasıyla başlatma
Google Street View görüntüleri, iOS için Google Haritalar uygulamasından görüntülenebilir. comgooglemaps URL şemasını kullanarak iOS için Google Haritalar uygulamasını Street View modunda başlatmak için mapmode parametresini streetview olarak ayarlayın. Street View'u başlatacak bir URL örneği aşağıda gösterilmiş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 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 o resim için kameranın yönünü tanımlamaz.
Bu amaçla, GMSOrientation nesnesi iki özellik tanımlar:
heading, kamera odağı etrafındaki dönüş açısını gerçek kuzeye göre derece cinsinden tanımlar. Yönler saat yönünde ölçülür: Gerçek kuzey 0, doğu 90, güney 180, batı 270'tir.pitch(varsayılan0), kameranın genellikle (ancak her zaman değil) düz yatay olan ilk varsayılan eğiminden "yukarı" veya "aşağı" açı varyansını tanımlar. (Örneğin, bir tepede çekilen bir resim muhtemelen yatay olmayan varsayılan bir eğim gösterir.) Eğim açıları, yukarı bakan pozitif değerlerle (tam yukarı ve varsayılan eğime dik olarak +90 dereceye kadar) ve aşağı bakan negatif değerlerle (tam aşağı ve 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ı görüntü ayrıntı düzeylerini destekler. Yakınlaştırma seviyesini programatik olarak ayarlayabilirsiniz. Kullanıcılar da görüntüleyicide iki parmakla yakınlaştırma hareketi yaparak seviyeyi değiştirebilir.
Kamerayı hareket ettirme
GMSPanoramaView oluşturduktan sonra, yapılandırılmış veya varsayılan bir kamerası varsa bunu birkaç şekilde değiştirebilirsiniz. Kamerayı değiştirdiğinizde ortaya çıkan kamera hareketini animasyon olarak kullanabilirsiniz. Animasyon, mevcut kamera özellikleri ile yeni kamera özellikleri arasında enterpolasyon yapar.
GMSPanoramaCamera nesnesini değiştirebilir ve GMSPanoramaView'nin camera özelliğinde ayarlayabilirsiniz. Bu işlem, kamerayı animasyon olmadan yeni bakış açısına sabitler. Yön ve yakınlaştırma kombinasyonlarını 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 sınıfının animateToCamera:animationDuration: yöntemini çağırarak geçişe animasyon ekleyebilirsiniz.
Ayrıca, Core Animation'ı kullanarak kamerayı kontrol edebilirsiniz. Bu, GMSPanoramaView, GMSPanoramaLayer tarihinde özel CALayer aracılığıyla kullanıma sunulur.
Street View'daki işaretçiler
GMSPanoramaView nesnesi, harita işaretleyicilerini 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çilerin boyutu, işaretçinin konumu ile GMSCameraView'nın konumu arasındaki mesafeye göre değişir. Bu mesafe çok fazla olursa işaretçi, görüntülenemeyecek kadar küçük hale gelir ve görünümden gizlenir.
panoramaView özelliğini nil olarak ayarlayarak GMSPanoramaView özelliğinden 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 dokunması) dinleyebilirsiniz. Etkinlikleri dinlemek için GMSPanoramaViewDelegate protokolünü uygulamanız gerekir. Etkinliklerle ilgili genel kılavuzu ve GMSPanoramaViewDelegate sayfasındaki yöntem listesini inceleyin.