Street View

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

Street View ของ Google Maps ช่วยให้คุณสามารถสำรวจสถานที่ต่างๆ ทั่วโลกผ่านภาพระดับถนน 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 องศาจากสถานที่เดียว รูปภาพที่สอดคล้องกับเส้นโครงทรงกลม (Plate Carrée) ซึ่งแสดงมุมมองแนวนอน 360 องศา (ภาพรวมแบบเต็ม) และมุมมองแนวตั้ง 180 องศา (จากตรงขึ้นไปยังแนวตรง) ภาพพาโนรามา 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 องศา) ให้ตั้งตรงและตั้งทิศทางกับระดับความสูงต่ำเริ่มต้น)

Zoom

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