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