Street View

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
เลือกแพลตฟอร์ม: Android iOS JavaScript

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

ภาพรวม

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 องศา วิวพาโนรามา 360 องศาจะกําหนดการคาดคะเนบนลูกโลกที่มีรูปภาพล้อมรอบอยู่กับพื้นผิว 2 มิติของพื้นผิวนั้น

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

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

พาโนรามาใน Street View จะระบุด้วยข้อมูลเมตา 1 ใน 2 รายการต่อไปนี้

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. (ครั้งเดียว) ทําตามขั้นตอนในการเริ่มต้นใช้งานเพื่อรับ SDK รับคีย์และเพิ่มเฟรมเวิร์กที่จําเป็น
  2. สร้างหรืออัปเดต ViewController หากพาโนรามาจะแสดงขึ้นเมื่อตัวควบคุมมุมมองนี้ปรากฏขึ้น โปรดอย่าลืมสร้างพาโนรามาภายในเมธอด loadView
  3. สร้างและสร้างอินสแตนซ์ GMSPanoramaView โดยใช้เมธอด GMSPanoramaView initWithFrame: หากจะใช้เป็นมุมมองเดียวของตัวควบคุมมุมมอง คุณสามารถใช้ CGRectZero เป็นเฟรมของแผนที่ได้ ระบบจะปรับขนาดแผนที่โดยอัตโนมัติ
  4. ตั้งค่าออบเจ็กต์ GMSPanoramaView เป็นมุมมองของตัวควบคุมมุมมอง เช่น 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

ตําแหน่ง Street View และมุมมอง (POV)

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 นอกจากนี้ คุณสามารถควบคุมกล้องโดยใช้ภาพเคลื่อนไหวหลักได้ด้วย โดยพร้อมใช้งานผ่าน 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