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 สําหรับรับและจัดการภาพที่ใช้ใน Street View ของ Google Maps
ระบบจะแสดงผลรูปภาพ Street View เป็นภาพพาโนรามาและดูได้จากภายในโปรแกรมดู Street View ซึ่งเป็นออบเจ็กต์ประเภท GMSPanoramaView
ภาพพาโนรามาของ Street View
ภาพพาโนรามาของ Street View แต่ละภาพคือรูปภาพหรือชุดรูปภาพที่แสดงมุมมอง 360 องศาจากจุดเดียว รูปภาพเป็นไปตามการฉายภาพแบบ Equirectangular (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 ครั้ง) ทําตามขั้นตอนในการเริ่มต้นใช้งานเพื่อรับ SDK, รับคีย์ และเพิ่มเฟรมเวิร์กที่จําเป็น
- สร้างหรืออัปเดต
ViewController
หากภาพพาโนรามาจะแสดงเมื่อตัวควบคุมมุมมองนี้ปรากฏขึ้น ให้สร้างภาพพาโนรามาภายในเมธอดloadView
- สร้างและสร้างอินสแตนซ์ของคลาส
GMSPanoramaView
โดยใช้เมธอดGMSPanoramaView
initWithFrame:
หากต้องการใช้เป็นมุมมองเดียวของ View Controller ให้ใช้CGRectZero
เป็นเฟรมของแผนที่ แล้วระบบจะปรับขนาดแผนที่โดยอัตโนมัติ - ตั้งค่าออบเจ็กต์
GMSPanoramaView
เป็นมุมมองของ ViewController เช่นself.view = panoView;
- กำหนดตำแหน่งของภาพ 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 และทิศตะวันตกคือ 270pitch
(ค่าเริ่มต้น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