Street View

เลือกแพลตฟอร์ม Android iOS JavaScript

Google Maps Street View ช่วยให้คุณสำรวจสถานที่ต่างๆ ทั่วโลกผ่านภาพระดับถนนแบบ 360 องศา คุณสามารถสำรวจสถานที่สำคัญทั่วโลก ดูสิ่งมหัศจรรย์ทางธรรมชาติ ไปยังจุดหมายต่างๆ หรือแสดงภาพภายนอกของธุรกิจ

ภาพรวม

Google Street View แสดงภาพมุมมอง 360 องศาแบบพาโนรามาจากถนนที่กําหนดทั่วทั้งพื้นที่ให้บริการ ความครอบคลุมที่พร้อมใช้งานผ่าน SDK จะเหมือนกับแอป Google Maps สำหรับ iOS หรือ https://maps.google.com/ อ่านข้อมูลเพิ่มเติมเกี่ยวกับ Street View และดูพื้นที่ที่รองรับบนแผนที่แบบอินเทอร์แอกทีฟได้ที่เกี่ยวกับ Street View

Maps SDK สําหรับ iOS มีบริการ Street View สําหรับรับและจัดการภาพที่ใช้ใน Street View ของ Google Maps ระบบจะแสดงผลรูปภาพ Street View เป็นภาพพาโนรามาและดูได้จากภายในโปรแกรมดู Street View ซึ่งเป็นออบเจ็กต์ประเภท GMSPanoramaView

ภาพพาโนรามาของ Street View

ภาพพาโนรามาของ Street View แต่ละภาพคือรูปภาพหรือชุดรูปภาพที่แสดงมุมมอง 360 องศาจากจุดเดียว รูปภาพเป็นไปตามการฉายภาพแบบ Equirectangular (Plate Carrée) ซึ่งมีมุมมองแนวนอน 360 องศา (แบบรอบตัว) และมุมมองแนวตั้ง 180 องศา (จากบนลงล่าง) พาโนรามา 360 องศาที่ได้จะกำหนดการฉายบนทรงกลมโดยที่ภาพจะวางซ้อนบนพื้นผิว 2 มิติของทรงกลมนั้น

คุณจะดูภาพพาโนรามาของ Street View ได้โดยดูจากวัตถุ GMSPanoramaView ออบเจ็กต์นี้จะแสดงผลวิวเวอร์ที่จะแสดงผลภาพพาโนรามาเป็นรูปทรงกลมโดยมีกล้องอยู่ตรงกลาง คุณสามารถควบคุมการวางแนวของกล้อง รวมถึงปรับแต่งพร็อพเพอร์ตี้ต่างๆ ของผู้ดูแบบเป็นโปรแกรมได้

การเข้าถึงข้อมูล Street View

ระบบจะระบุภาพพาโนรามาของ Street View ด้วยข้อมูลเมตาอย่างใดอย่างหนึ่งต่อไปนี้

panoramaID
รหัสที่ไม่ซ้ำกันของภาพพาโนรามา Street View panoramaIDนี้อาจเปลี่ยนแปลงเมื่อเวลาผ่านไป และไม่ควรใช้เป็นข้อมูลอ้างอิงระยะยาวหรือแบบฮาร์ดโค้ด panoramaID เหมาะสําหรับการให้สิทธิ์เข้าถึงแบบเป็นโปรแกรมสําหรับรูปภาพ Street View ต่างๆ
coordinate
ตำแหน่งที่แน่นอนของรูปภาพนี้ ซึ่งแสดงเป็น CLLocationCoordinate2D ใช้ coordinate สำหรับการจัดเก็บตำแหน่งพาโนรามาแบบถาวร หรือเพื่อแปลการดําเนินการของผู้ใช้บนแผนที่เป็นภาพ Street View

ทั้ง panoramaID และ coordinate จะจัดเก็บเป็นพร็อพเพอร์ตี้ของออบเจ็กต์ GMSPanorama คุณขอ GMSPanorama จาก GMSPanoramaService ได้โดยใช้ coordinate หรือ panoramaID ออบเจ็กต์ที่ได้จะมีทั้งข้อมูลเมตา 2 รายการ รวมถึงอาร์เรย์ของลิงก์ไปยังภาพพาโนรามาที่อยู่ใกล้เคียง

การตั้งค่าตำแหน่งของภาพพาโนรามา

ตำแหน่งของภาพพาโนรามา Street View สามารถกำหนดตามพิกัดได้

  • เมธอด moveNearCoordinate จะขอภาพพาโนรามาที่อยู่ใกล้กับพิกัด

  • วิธี moveNearCoordinate:radius จะคล้ายกัน แต่ให้คุณระบุรัศมีการค้นหาเป็นเมตรรอบพิกัดได้

  • เมธอด moveNearCoordinate:source ช่วยให้คุณระบุแหล่งที่มาได้ แหล่งที่มามีประโยชน์ในกรณีที่คุณต้องการจำกัดให้ Street View มองหาเฉพาะภาพพาโนรามาที่ถ่ายกลางแจ้ง โดยค่าเริ่มต้น พาโนรามาของสถานที่จะถ่ายจากภายในหรือภายนอก โปรดทราบว่าภาพพาโนรามากลางแจ้งอาจไม่พร้อมใช้งานสำหรับสถานที่ที่ระบุ

  • วิธีการ moveNearCoordinate:radius:source ให้คุณระบุทั้งรัศมีและแหล่งที่มา

การดูรูปภาพ Street View

การเพิ่มโปรแกรมดู Street View

ขั้นตอนพื้นฐานในการเพิ่มผู้ดูมีดังนี้

  1. (1 ครั้ง) ทําตามขั้นตอนในการเริ่มต้นใช้งานเพื่อรับ SDK, รับคีย์ และเพิ่มเฟรมเวิร์กที่จําเป็น
  2. สร้างหรืออัปเดต ViewController หากภาพพาโนรามาจะแสดงเมื่อตัวควบคุมมุมมองนี้ปรากฏขึ้น ให้สร้างภาพพาโนรามาภายในเมธอด loadView
  3. สร้างและสร้างอินสแตนซ์ของคลาส GMSPanoramaView โดยใช้เมธอด GMSPanoramaView initWithFrame: หากต้องการใช้เป็นมุมมองเดียวของ View Controller ให้ใช้ CGRectZero เป็นเฟรมของแผนที่ แล้วระบบจะปรับขนาดแผนที่โดยอัตโนมัติ
  4. ตั้งค่าออบเจ็กต์ GMSPanoramaView เป็นมุมมองของ ViewController เช่น self.view = panoView;
  5. กำหนดตำแหน่งของภาพ Street View โดยใช้วิธีการต่างๆ เช่น moveNearCoordinate:

ตัวอย่างด้านล่างแสดงการเพิ่มโปรแกรมดู Street View ลงในแอป

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
      

การปรับแต่งโปรแกรมดู

คุณปรับแต่งโปรแกรมดูได้โดยจำกัดท่าทางสัมผัสที่ใช้ได้ โดยค่าเริ่มต้น ระบบจะเปิดใช้การเลื่อน การซูม และการเดินทางไปยังภาพพาโนรามาที่อยู่ติดกัน การควบคุมท่าทางสัมผัสแต่ละรายการทำได้ผ่านพร็อพเพอร์ตี้ของ GMSPanoramaView พร็อพเพอร์ตี้เหล่านี้จะเปิดหรือปิดใช้ท่าทางสัมผัสที่ผู้ใช้ควบคุมได้ การเปลี่ยนแปลงแบบเป็นโปรแกรมจะยังคงทําได้เมื่อปิดใช้ท่าทางสัมผัส

orientationGestures
ผู้ใช้จะปรับการวางแนวกล้องใหม่โดยการแตะหรือลากได้หรือไม่ ตั้งค่าเป็น NO เพื่อปิดใช้การเปลี่ยนแปลงการวางแนวของกล้อง
zoomGestures
ผู้ใช้จะซูมเข้า/ออกด้วยการบีบนิ้วได้หรือไม่ ตั้งค่าเป็น NO เพื่อปิดใช้การซูม
navigationGestures
ผู้ใช้จะเปลี่ยนภาพพาโนรามาที่แสดงได้หรือไม่ ผู้ใช้อาจแตะลิงก์การนำทางเพียงครั้งเดียวหรือแตะสองครั้งที่มุมมองเพื่อเปลี่ยนภาพพาโนรามา ตั้งค่าเป็น NO เพื่อปิดใช้การเปลี่ยนแปลงการนำทาง

คุณสามารถเปิดหรือปิดใช้ท่าทางสัมผัสทั้งหมดพร้อมกันได้ด้วยวิธี setAllGesturesEnabled:

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

การเปิดตัว Street View ด้วยรูปแบบ URL

คุณสามารถดูภาพจาก Google Street View ได้จากภายในแอปพลิเคชัน Google Maps สำหรับ iOS คุณสามารถเปิดแอปพลิเคชัน Google Maps สำหรับ iOS ในโหมด Street View โดยใช้รูปแบบ URL comgooglemaps โดยตั้งค่าพารามิเตอร์ mapmode เป็น streetview ตัวอย่าง URL ที่เปิด Street View จะแสดงอยู่ด้านล่าง ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบรูปแบบ URL

comgooglemaps://?center=46.414382,10.013988&mapmode=streetview

สถานที่ตั้งและจุดชมวิว (POV) ของ Street View

GMSPanoramaCamera ช่วยให้คุณตั้งค่าจุดมองของกล้อง Street View โดยใช้การรวมกันของทิศทาง การเอียง และซูม

ชุดข้อมูลโค้ดด้านล่างจะหันกล้องไปทางทิศใต้และลงต่ำเล็กน้อย

Swift

panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      

Objective-C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

การวางแนว

ตำแหน่ง Street View จะกำหนดตำแหน่งโฟกัสของกล้องสำหรับรูปภาพ แต่ไม่ได้กำหนดการวางแนวของกล้องสำหรับรูปภาพนั้น ออบเจ็กต์ GMSOrientation จึงกําหนดพร็อพเพอร์ตี้ 2 รายการเพื่อวัตถุประสงค์ดังกล่าว ดังนี้

  • heading กำหนดมุมการหมุนรอบจุดศูนย์กลางของกล้องเป็นองศาโดยสัมพันธ์กับทิศเหนือจริง โดยระบบจะวัดทิศทางตามเข็มนาฬิกา ดังนี้ ทิศเหนือจริงคือ 0 ทิศตะวันออกคือ 90 ทิศใต้คือ 180 และทิศตะวันตกคือ 270
  • pitch (ค่าเริ่มต้น 0) กำหนดความแปรปรวนของมุม "ขึ้น" หรือ "ลง" จากระดับความเอียงเริ่มต้นของกล้อง ซึ่งมักจะ (แต่ไม่ใช่เสมอไป) เป็นแนวนอน (เช่น รูปภาพที่ถ่ายบนเนินเขามีแนวโน้มที่จะแสดงระดับความชันเริ่มต้นที่ไม่ใช่แนวนอน) ระบบจะวัดมุมเอียงด้วยค่าบวกสำหรับการมองขึ้น (สูงสุด +90 องศาตรงๆ ขึ้นและตั้งฉากกับระดับความชันเริ่มต้น) และค่าลบสำหรับการมองลง (สูงสุด -90 องศาตรงๆ ลงและตั้งฉากกับระดับความชันเริ่มต้น)

ซูม

Street View รองรับรายละเอียดของภาพในระดับต่างๆ ผ่านการใช้การซูม คุณสามารถตั้งค่าระดับการซูมแบบเป็นโปรแกรม หรือผู้ใช้จะเปลี่ยนระดับในการดูได้โดยการปัดเพื่อซูม

การเคลื่อนกล้อง

เมื่อสร้าง GMSPanoramaView แล้ว และมีกล้องที่กําหนดค่าไว้หรือกล้องเริ่มต้น คุณจะเปลี่ยนได้หลายวิธี เมื่อเปลี่ยนกล้อง คุณจะมีตัวเลือกในการทำให้ภาพเคลื่อนไหวของกล้องเคลื่อนไหว ภาพเคลื่อนไหวจะแสดงค่าระหว่างแอตทริบิวต์กล้องปัจจุบันกับแอตทริบิวต์กล้องใหม่

คุณสามารถแก้ไขออบเจ็กต์ GMSPanoramaCamera และตั้งค่าไว้ในพร็อพเพอร์ตี้ camera ของ GMSPanoramaView ซึ่งจะเปลี่ยนมุมมองของกล้องไปยังมุมมองใหม่โดยไม่มีภาพเคลื่อนไหว ระบบอาจสร้าง GMSCameraPosition เพื่อกําหนดค่าการผสมผสานการวางแนวและการซูม

Swift

panoView.camera = GMSPanoramaCamera(heading: 180, pitch: -10, zoom: 1)
      

Objective-C

panoView.camera = [GMSPanoramaCamera cameraWithHeading:180
                                                 pitch:-10
                                                  zoom:1];
      

คุณสร้างภาพเคลื่อนไหวของทรานซิชันได้โดยเรียกใช้เมธอด animateToCamera:animationDuration: ของ GMSPanoramaView นอกจากนี้ คุณยังควบคุมกล้องโดยใช้ Core Animation ได้ด้วย ฟีเจอร์นี้พร้อมใช้งานผ่าน CALayer ที่กําหนดเองใน GMSPanoramaView ของ GMSPanoramaLayer

เครื่องหมายใน Street View

ออบเจ็กต์ GMSPanoramaView สามารถแสดงเครื่องหมายแผนที่ได้ คุณสามารถใช้ออบเจ็กต์ GMSMarker เดียวกันกับออบเจ็กต์ GMSMapView หรือ GMSPanoramaView ได้โดยการตั้งค่าพร็อพเพอร์ตี้ที่เกี่ยวข้อง ดังนี้

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;
      

เครื่องหมายจะปรับขนาดตามฟังก์ชันของระยะทางระหว่างตําแหน่งของเครื่องหมายกับตําแหน่งของ GMSCameraView หากระยะห่างนี้ไกลเกินไป เครื่องหมายจะเล็กเกินกว่าที่จะแสดงและจะซ่อนอยู่

ตั้งค่าพร็อพเพอร์ตี้ panoramaView เป็น nil เพื่อนำออกจาก GMSPanoramaView

Swift

marker.panoramaView = nil
      

Objective-C

marker.panoramaView = nil;
      

กิจกรรม

คุณสามารถฟังเหตุการณ์ที่เกิดขึ้นในภาพพาโนรามาของ Street View เช่น เมื่อผู้ใช้แตะภาพพาโนรามา หากต้องการตรวจสอบเหตุการณ์ คุณต้องติดตั้งใช้งานโปรโตคอล GMSPanoramaViewDelegate ดูคําแนะนําโดยรวมเกี่ยวกับเหตุการณ์และรายการเมธอดในGMSPanoramaViewDelegate