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 แผนที่สำหรับ 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