
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 องศาแบบเต็มจากสถานที่เดียว รูปภาพเป็นไปตามการฉายภาพแบบ Equirectangular (Plate Carrée) ซึ่งมีมุมมองแนวนอน 360 องศา (แบบรอบทิศทาง) และมุมมองแนวตั้ง 180 องศา (จากบนสุดถึงล่างสุด) ภาพพาโนรามา 360 องศาที่ได้จะกำหนดการฉายภาพบนทรงกลมโดยมีรูปภาพที่ห่อหุ้มพื้นผิว 2 มิติของทรงกลมนั้น
คุณดูภาพพาโนรามาใน Street View ได้ด้วยออบเจ็กต์ GMSPanoramaView ออบเจ็กต์นี้มีโปรแกรมดูที่จะแสดงผลภาพพาโนรามาเป็นทรงกลม โดยมีกล้องอยู่ที่จุดศูนย์กลาง คุณสามารถควบคุมการวางแนวของกล้องแบบเป็นโปรแกรม รวมถึงพร็อพเพอร์ตี้หลายรายการที่ปรับแต่งโปรแกรมดูได้
เข้าถึงข้อมูล Street View
ภาพพาโนรามาใน Street View จะระบุด้วยข้อมูลเมตา 2 รายการต่อไปนี้
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
ขั้นตอนพื้นฐานในการเพิ่มผู้ดูมีดังนี้
- (ครั้งเดียว) ทำตามขั้นตอนในการเริ่มต้นใช้งานเพื่อรับ SDK, รับคีย์ และเพิ่มเฟรมเวิร์กที่จำเป็น
- สร้างหรืออัปเดต
ViewControllerหากจะแสดงภาพพาโนรามาเมื่อตัวควบคุมมุมมองนี้ปรากฏขึ้น ให้สร้างภาพพาโนรามาภายในเมธอดloadView - สร้างและสร้างอินสแตนซ์คลาส
GMSPanoramaViewโดยใช้เมธอดGMSPanoramaViewinitWithFrame:หากจะใช้เป็นมุมมองเดียวของตัวควบคุมมุมมอง คุณสามารถใช้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- ผู้ใช้จะเปลี่ยนภาพพาโนรามาที่มองเห็นได้หรือไม่ ผู้ใช้อาจแตะลิงก์การนำทางเพียงครั้งเดียวหรือแตะมุมมอง 2 ครั้งเพื่อเปลี่ยนภาพพาโนรามา ตั้งค่าเป็น
NOเพื่อปิดใช้การเปลี่ยนแปลงการนำทาง
คุณเปิดหรือปิดใช้ท่าทางสัมผัสทั้งหมดพร้อมกันได้ด้วยเมธอด setAllGesturesEnabled:
Swift
panoView.setAllGesturesEnabled(false)
Objective-C
[panoView setAllGesturesEnabled:NO];
การเปิด Street View ด้วย URL Scheme
ภาพ Google Street View สามารถดูได้จากภายในแอปพลิเคชัน Google Maps สำหรับ iOS คุณเปิดแอปพลิเคชัน Google Maps สำหรับ iOS ในโหมด Street View ได้ด้วย URL Scheme comgooglemaps โดยตั้งค่าพารามิเตอร์ mapmode เป็น streetview ตัวอย่าง URL ที่จะเปิด Street View มีดังนี้ ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบเกี่ยวกับ URL Scheme
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
นอกจากนี้ คุณยังควบคุมกล้องโดยใช้ 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