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