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 สำหรับรับและจัดการภาพที่ใช้ใน Google Maps Street View ระบบจะแสดงผลรูปภาพ Street View เป็นภาพพาโนรามาและดูได้จากภายในโปรแกรมดู Street View ซึ่งเป็นออบเจ็กต์ประเภท GMSPanoramaView

ภาพพาโนรามาใน Street View

ภาพพาโนรามาของ Street View แต่ละภาพคือรูปภาพหรือชุดรูปภาพที่แสดงมุมมอง 360 องศาเต็มจากสถานที่ตั้งเดียว รูปภาพเป็นไปตามการฉายภาพทรงกลม (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