Street View

Platform seçin: Android iOS JavaScript

Google Haritalar Street View, dünyanın dört bir yanındaki yerleri, 360 derecelik sokak düzeyinde görüntüler aracılığıyla keşfetmenize olanak tanır. Dünyadaki önemli noktaları keşfedebilir, göz kamaştırıcılarını görebilir, bir geziye çıkabilir veya işletmenizin dışını gösterebilirsiniz.

Genel bakış

Google Street View, kapsama alanı boyunca belirtilen yollardan 360 derecelik panoramik görüntüler sağlar. SDK aracılığıyla kullanılabilen kapsam, iOS için Google Haritalar uygulaması veya https://maps.google.com/ ile aynıdır. Etkileşimli harita üzerinde Street View hakkında daha fazla bilgi edinebilir ve desteklenen alanları görebilirsiniz. Street View hakkında.

iOS için Haritalar SDK'sı, Google Haritalar Street View'da kullanılan görüntülerin alınması ve değiştirilmesi 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üleyicisinin (GMSPanoramaView türünde bir nesne) içinden 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 sarmalama) ve 180 derece dikey görünüm (düzden tepeye doğru) içeren eş dikdörtgen (Plate Carrée) projeksiyona uygundur. Ortaya çıkan 360 derecelik panorama, küre üzerindeki bir projeksiyonu tanımlar ve resim, bu kürenin iki boyutlu yüzeyine sarılmış durumdadır.

Street View panoramaları GMSPanoramaView nesnesiyle görüntülenebilir. Bu nesne, panoramayı ortasında kamera olacak şekilde küre şeklinde işleyecek 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
Bir Street View panoramasının benzersiz kimliğidir. Bu panoramaID, zaman içinde değişebilir ve uzun vadeli veya sabit kodlu referans olarak uygun değildir. panoramaID, farklı Street View resimlerine programatik erişim sağlamak için en iyi seçenektir.
coordinate
Bu resmin tam konumu (CLLocationCoordinate2D olarak ifade edilir). Bir panorama konumunu kalıcı olarak depolamak veya haritadaki kullanıcı işlemlerini Street View görüntüsüne çevirmek için coordinate kullanın.

Hem panoramaID hem de coordinate, GMSPanorama nesnesinin özellikleri olarak depolanır. coordinate veya panoramaID kullanarak GMSPanoramaService adlı satıcıdan GMSPanorama isteyebilirsiniz. Sonuçta ortaya çıkan nesne hem meta veri parçalarını hem de yakındaki panoramalara yönlendiren bir dizi bağlantı içerir.

Panoramanın konumunu ayarlama

Street View panoramasının konumu koordinatla 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, bir kaynak belirtmenizi sağlar. Street View'ı yalnızca dışarıdaki panoramaları arayacak şekilde kısıtlamak istiyorsanız bir kaynak faydalıdır. Konumların panoramaları varsayılan olarak iç veya dış mekandır. Belirtilen konum için dış mekan panoramalarının mevcut olmayabileceğini unutmayın.

  • moveNearCoordinate:radius:source yöntemi hem yarıçap hem de kaynak belirtmenize olanak tanır.

Street View resimlerini görüntüleme

Street View görüntüleyici ekleme

İzleyici 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. Bir ViewController oluşturun veya güncelleyin. Bu görünüm denetleyicisi görünür olduğunda panorama gösterilirse bunu loadView yöntemiyle oluşturduğunuzdan emin olun.
  3. GMSPanoramaView initWithFrame: yöntemini kullanarak bir GMSPanoramaView sınıfı oluşturun ve bunu örneklendirin. Bu, görünüm denetleyicisinin tek görünümü olarak kullanılacaksa haritanın ç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 ayarlayın.

Aşağıdaki örnekte, bir uygulamaya Street View görüntüleyici eklenmiştir.

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 gitmenin tümü etkindir. Bağımsız hareketler, GMSPanoramaView özellikleri ile kontrol edilir. Bu özellikler, kullanıcı tarafından kontrol edilen hareketleri etkinleştirir veya devre dışı bırakır; hareket devre dışıyken de programatik değişiklikler yapılabilir.

orientationGestures
Kullanıcının dokunarak veya sürükleyerek kameranın yönünü değiştirip değiştiremeyeceği. Kamerada yön değişikliklerini devre dışı bırakmak için NO olarak ayarlayın.
zoomGestures
Kullanıcının iki parmak ucuyla yakınlaştırma ve uzaklaştırma yapıp yapamayacağı. Yakınlaştırmayı devre dışı bırakmak için ayarı NO olarak ayarlayın.
navigationGestures
Kullanıcının görünür olan panoramayı değiştirip değiştiremeyeceğini belirtir. 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 gezinme değişikliklerini devre dışı bırakabilir. NO seçeneğine ayarlayın.

setAllGesturesEnabled: yöntemiyle tüm hareketleri aynı anda etkinleştirebilir veya devre dışı bırakabilirsiniz.

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

Street View'ı URL Şeması ile 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ı comgooglemaps URL Şeması ile sokak görünümü modunda başlatabilirsiniz. Street View'ı 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ı 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 hafifçe aşağı 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 görüntü için kameranın yönünü tanımlamaz. Bu amaçla, GMSOrientation nesnesi iki özellik tanımlar:

  • heading, kamera noktasının çevresindeki dönme açısını gerçek kuzeye göre derece cinsinden tanımlar. Yönler saat yönünde ölçülür: doğru kuzey 0, doğu 90, güney 180, batı 270 olarak ölçülür.
  • pitch (varsayılan 0), kameranın genellikle (ancak her zaman değil) düz yatay olan ilk varsayılan perdesinden "yukarı" veya "aşağı" açı varyansını tanımlar. (Örneğin, bir tepede çekilen resim, büyük olasılıkla yatay olmayan bir varsayılan perde sergiler.) Atış açıları yukarı bakan pozitif değerlerle (varsayılan perdeye en fazla +90 derece, varsayılan perdeye dik olarak) ve negatif değerlerle (varsayılan perdeye kadar -90 dereceye kadar ve dikey olarak) ölçülür.

Tarih aralığını

Street View, zum kullanımı aracılığıyla farklı düzeylerde görüntü ayrıntısını destekler. Yakınlaştırma düzeyini programatik olarak ayarlayabilirsiniz veya kullanıcılar, yakınlaştırmak için sıkıştırarak görüntüleyicideki düzeyi değiştirebilir.

Kamerayı hareket ettirme

GMSPanoramaView öğesini oluşturduktan sonra, yapılandırılmış veya varsayılan bir kamerası varsa bunu birkaç şekilde değiştirebilirsiniz. Kamerayı değiştirdiğinizde, sonuçta elde edilen kamera hareketini canlandırabilirsiniz. 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ış açısına tutturur. Yön ve yakınlaştırmanın herhangi bir 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];
      

animateToCamera:animationDuration: GMSPanoramaView yöntemini kullanarak bir geçişe animasyon uygulayabilirsiniz. Ayrıca, Core Animation'ı kullanarak kamerayı kontrol edebilirsiniz. Bu özellik GMSPanoramaView, GMSPanoramaLayer adresindeki özel CALayer aracılığıyla sunulur.

Street View'daki işaretçiler

GMSPanoramaView nesnesi, harita işaretçilerini görüntüleyebiliyor. GMSMapView veya GMSPanoramaView nesnesinde aynı GMSMarker nesnesini, buna karşılık gelen özellikleri ayarlayarak 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 konumu arasındaki mesafenin bir işlevi olarak ölçeklendirilir. Bu mesafe fazla büyürse, işaretçi gösterilemeyecek kadar küçük olur ve görünmez.

GMSPanoramaView öğesinden 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ının panoramaya dokunması) dinleyebilirsiniz. Etkinlikleri dinlemek için GMSPanoramaViewDelegate protokolünü uygulamanız gerekir. Genel etkinlik rehberine ve GMSPanoramaViewDelegate sitesindeki yöntemler listesine bakın.