Street View

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

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

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

คุณสามารถตั้งค่าสถานที่ถ่ายภาพพาโนรามาของ 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
ผู้ใช้สามารถเปลี่ยนแปลงภาพพาโนรามาที่จะแสดงได้หรือไม่ ผู้ใช้อาจแตะลิงก์การนําทาง 1 ครั้งหรือแตะมุมมอง 2 ครั้งเพื่อเปลี่ยนภาพพาโนรามา โดยตั้งค่าเป็น NO เพื่อปิดใช้การเปลี่ยนแปลงการนําทาง

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

Swift

panoView.setAllGesturesEnabled(false)
      

Objective-C

[panoView setAllGesturesEnabled:NO];
      

การเปิดตัว Street View ด้วยสคีม URL

คุณสามารถดูภาพ Google Street View ได้จากภายในแอปพลิเคชัน Google แผนที่ สําหรับ iOS คุณสามารถเปิดแอปพลิเคชัน Google แผนที่สําหรับ 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 โดยรวม