Street View

Platformu seçin: Android iOS JavaScript

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 bir coordinate 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:

  1. (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.
  2. 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.
  3. GMSPanoramaView initWithFrame: yöntemini kullanarak bir GMSPanoramaView sınıfı oluşturup örnekleyin. Bu, görünüm denetleyicisinin tek görünümü olarak kullanılacaksa, harita çerçevesi olarak CGRectZero kullanılabilir. Harita otomatik olarak yeniden boyutlandırılır.
  4. GMSPanoramaView nesnesini, görünüm denetleyicisinin görünümü olarak ayarlayın (ör. self.view = panoView;).
  5. 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ılan 0), 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.