ภาพ Street View

ตัวอย่าง Street Viewชิ้นส่วนแผนที่ Street View คล้ายกับชิ้นส่วนแผนที่ 2 มิติ ยกเว้นว่าจะมีภาพพาโนรามาซึ่งถ่ายจากระดับถนน คุณสามารถสำรวจจุดสังเกตทั่วโลก ดูความมหัศจรรย์ทางธรรมชาติ และเยี่ยมชมด้านในของสถานที่ต่างๆ เช่น พิพิธภัณฑ์ สนามกีฬา ร้านอาหาร หรือธุรกิจขนาดย่อมด้วย Street View ปลายทาง API นี้จะช่วยให้คุณเข้าถึงสิ่งต่อไปนี้ได้

  • ชิ้นส่วนแผนที่ Street View ของ Google Maps
  • ข้อมูลเมตาของ Street View
  • ภาพขนาดย่อของ Street View

คุณสามารถต่อภาพไทล์ที่ถ่ายจากระดับถนนเข้าด้วยกันเพื่อสร้างเอฟเฟกต์ภาพพาโนรามาเหมือนจริง และสามารถค้นหารหัสภาพพาโนรามาสูงสุด 100 รายการสำหรับสถานที่ตั้งชุดหนึ่ง (เช่น เส้นทาง) รวมถึงดูข้อมูลเมตาเชิงลึกเพิ่มเติมเกี่ยวกับตำแหน่งของกล้อง

โปรแกรมดูภาพจะต้องต่อชิ้นส่วนแผนที่ Street View เข้าด้วยกัน เช่น โปรแกรมดูภาพพาโนรามาแบบกำหนดเองของ Street View

เมื่อมีคีย์ API แล้ว คุณจะเข้าถึงภาพ Street View ได้โดยทำตามขั้นตอนต่อไปนี้

  1. รับโทเค็นเซสชัน อย่าลืมตั้งค่า mapType เป็น streetview

  2. ใช้โทเค็นเซสชันเพื่อรับตัวระบุภาพพาโนรามา (panoId) ของสถานที่ตั้งทางภูมิศาสตร์อย่างน้อย 1 แห่ง

  3. ใช้ตัวระบุพาโนรามาจากการตอบกลับการค้นหา panoId เพื่อรับข้อมูลต่อไปนี้

    1. ข้อมูลเมตาของ Street View นอกจากนี้ คุณยังรับข้อมูลเมตาของ Street View ได้โดยส่งชุดพิกัดและรัศมี

    2. ภาพขนาดย่อของ Street View

    3. ชิ้นส่วนแผนที่ Street View

วิธีการของ Street View

คุณเข้าถึงภาพและข้อมูลเมตาของ Street View ได้โดยโทรหาหนึ่งใน 4 วิธีต่อไปนี้

วิธีการ คำอธิบาย
https://tile.googleapis.com/v1/streetview/tiles แสดงผลชิ้นส่วนแผนที่ Street View แต่ละรายการ คุณสามารถเรียกข้อมูลไทล์ Street View ในระดับการซูม 6 ระดับได้ ตั้งแต่ 512 พิกเซลไปจนถึง 13,312 พิกเซล
https://tile.googleapis.com/v1/streetview/panoIds ช่วยให้คุณค้นหาสถานที่ได้สูงสุด 100 แห่งพร้อมกัน แสดงผลรหัสภาพพาโนรามาสำหรับสถานที่ทั้งหมดที่มีภาพ
https://tile.googleapis.com/v1/streetview/thumbnail แสดงผลรูปภาพ JPEG ขนาดย่อของฉาก Street View ให้คุณระบุส่วนหัว ระดับความลาดชัน มิติข้อมูล และมุมมอง ขนาดขั้นต่ำคือ 16x16 พิกเซล ขนาดสูงสุดคือ 250x600 พิกเซล
https://tile.googleapis.com/v1/streetview/metadata ให้ข้อมูลโดยละเอียดเกี่ยวกับภาพพาโนรามาที่ระบุ รายละเอียดประกอบด้วยที่อยู่ที่เกี่ยวข้องและลิงก์ไปยังภาพพาโนรามาที่ใกล้เคียง

คุณสามารถค้นหาตัวระบุภาพพาโนรามาของสถานที่ตั้งทางภูมิศาสตร์อย่างน้อย 1 แห่งโดยส่งพิกัด (lat, lng) ไปยังเมธอด panoIds เนื้อหาคำขอคือออบเจ็กต์ JSON ที่มีอาเรย์ locations และradius (ไม่บังคับ) ตามที่แสดงในตัวอย่างโค้ด JSON ต่อไปนี้

curl -X POST -d '{
  "locations": [
    {"lat": -33.883837, "lng": 151.209307},
    {"lat": -33.883700, "lng": 151.210307},
    {"lat": 0, "lng": 0}
  ],
  "radius": 50
}' \
-H 'Content-Type: application/json' \
"https://tile.googleapis.com/v1/streetview/panoIds?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY"
locations
อาร์เรย์ locations ต้องมีชุดค่าพิกัดอย่างน้อย 1 ชุด แต่คุณใส่ชุดค่าพิกัดเพิ่มได้สูงสุด 100 ชุด
radius
ค่า radius (วัดเป็นเมตร) จะกำหนดรัศมีของวงกลมรอบๆ ตำแหน่งที่ระบุเพื่อค้นหาภาพพาโนรามา ค่าเริ่มต้นคือ 50 เมตร

การตอบกลับ PanoId

Map Tiles API จะพยายามค้นหาภาพพาโนรามาที่ใกล้ที่สุดกับสถานที่แต่ละแห่ง จากนั้นจะแสดงผลรหัสภาพพาโนรามา คำขอ panoIds ที่สำเร็จจะแสดงผลออบเจ็กต์ JSON ที่มีอาร์เรย์ panoIds อาร์เรย์นี้มีรายการรหัสภาพพาโนรามาในลำดับที่คุณขอ หาก Map Tiles API ไม่พบภาพพาโนรามาของสถานที่ที่คุณขอ ระบบจะแสดงสตริงว่างในตำแหน่งนั้นในอาร์เรย์ ดูตัวอย่างได้ที่โค้ด JSON ต่อไปนี้

{
  "panoIds": [
    "ACfH-n2HcBvRry_3oc9grw",
    "f5DJZatBAAAXHlooS2wKbw",
    ""
  ]
}

คุณใช้ panoIds เพื่อทำสิ่งต่อไปนี้ได้

ข้อมูลเมตาของ Street View

คำขอข้อมูลเมตาของ Street View จะดึงข้อมูลเกี่ยวกับภาพพาโนรามา คำขอข้อมูลเมตาของ Street View คือคำขอ HTTPS GET คุณเรียกข้อมูลเกี่ยวกับภาพพาโนรามาได้ 2 วิธีดังนี้

  • หากคุณส่ง pano_id ทาง Map Tiles API จะแสดงผลข้อมูลเมตาของภาพพาโนรามานั้น

  • แต่หากคุณส่ง lat และ lng ทาง Map Tiles API จะแสดงผลข้อมูลเมตาของภาพพาโนรามาที่ใกล้ที่สุดภายในรัศมีการค้นหาที่ระบุ

ส่งชุดพิกัดและรัศมี

curl "https://tile.googleapis.com/v1/streetview/metadata?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&lat=lat&lng=lng&radius=meters"

เนื่องจากรหัสภาพพาโนรามามีอายุสั้น เราขอแนะนำให้คุณส่งชุดพิกัดและค่า radius ในคำขอข้อมูลเมตา Street View ครั้งแรก ดูตัวอย่างได้ที่ข้อมูลโค้ดต่อไปนี้

curl "https://tile.googleapis.com/v1/streetview/metadata?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&lat=47.62066&lng=-122.34923&radius=50"

ส่ง panoId ของรูปภาพ Street View

curl "https://tile.googleapis.com/v1/streetview/metadata?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&panoId=panoId"

การตอบสนองข้อมูลเมตา

โค้ด JSON ต่อไปนี้เป็นตัวอย่างการตอบกลับข้อมูลเมตาทั่วไป

{
 "panoId": "rZ9KeTyhA11i0VppYNzsSg",
 "lat": 37.420864219339165,
 "lng": -122.08446528377291,
 "imageHeight": 6656,
 "imageWidth": 13312,
 "tileHeight": 512,
 "tileWidth": 512,
 "heading": 94.35,
 "tilt": 88.39652,
 "roll": 1.7181772,
 "imageryType": "outdoor",
 "date": "2023-01",
 "copyright": "© 2023 Google",
 "reportProblemLink": "https://cbks0.googleapis.com/cbk?output=report&panoid=rZ9KeTyhA11i0VppYNzsSg&cb_client=api&cbp=1,0,,0,0&hl=en-US&gl=us",
 "addressComponents": [
  {
   "longName": "United States",
   "shortName": "United States",
   "types": [
    "country"
   ]
  },
  {
   "longName": "Mountain View, California",
   "shortName": "Mountain View, California",
   "types": [
    "locality"
   ]
  },
  {
   "longName": "Charleston Rd",
   "shortName": "Charleston Rd",
   "types": [
    "route"
   ]
  },
  {
   "longName": "1635",
   "shortName": "1635",
   "types": [
    "street_number"
   ]
  }
 ],
 "links": [
  {
   "panoId": "Yw4pqzA4FEq1qs-BwZSvSQ",
   "heading": 274.47998046875,
   "text": "Charleston Rd"
  },
  {
   "panoId": "1cODYwFRw1aZ45IignDIMw",
   "heading": 94.47999572753906,
   "text": "Charleston Rd"
  }
 ]
}

รายการต่อไปนี้มีคำจำกัดความของช่องในเนื้อหาการตอบกลับ

panoId
รหัสที่ไม่ซ้ำกันของภาพพาโนรามานี้ คุณไม่ควรคาดหวังว่ารหัส Panorama จะใช้งานได้นานกว่าเซสชันของผู้ใช้เพียงเซสชันเดียว
lat, lng
พิกัด (ละติจูดและลองจิจูด) ของภาพพาโนรามา ค่าเหล่านี้อาจแตกต่างจากพิกัดที่คุณส่งในคำขอเนื่องจากตำแหน่งจะปักหมุดไปยังภาพพาโนรามาที่ใกล้ที่สุด
imageHeight, imageWidth
ขนาดของรูปภาพพาโนรามาที่ต่อกัน
tileHeight, tileWidth
ขนาดของไทล์ภาพพาโนรามาภาพเดียว
heading
ทิศทางของเข็มทิศที่วัดเป็นองศาตามเข็มนาฬิกาจากทิศเหนือ ระบบจะแสดงหัวขึ้นในช่วงที่ [0,360] โดย 0 หมายถึงทิศเหนือ
tilt
การเอียงของภาพพาโนรามา ซึ่งวัดเป็นองศาจากขั้วโลกใต้ของภาพพาโนรามาไปยังขอบฟ้า ค่าที่แสดงผลจะอยู่ในช่วง [0, 180] ค่า 90 องศาหมายความว่าเส้นขอบฟ้าอยู่ในแนวเส้นศูนย์สูตรของภาพพาโนรามาอยู่แล้ว
roll
การหมุนตามเข็มนาฬิการอบแนวสายตาที่ใช้กับภาพพาโนรามาเพื่อปรับระดับเส้นขอบฟ้า ค่าที่แสดงผลอยู่ในช่วง [0, 360]
imageryType
ระบุประเภทของรูปภาพ ค่าที่ใช้ได้คือ indoor และ outdoor
date
วันที่ถ่ายภาพ รูปภาพบางรูปไม่มีข้อมูลวันที่ แต่หากมีข้อมูล ช่องนี้จะประกอบด้วยปี (YYYY) และเดือน (MM) เช่น 2023-05 หรือ 2024
copyright
ข้อความเกี่ยวกับลิขสิทธิ์ที่คุณต้องแสดงเป็นข้อมูลระบุแหล่งที่มาพร้อมกับรูปภาพ Street View
reportProblemLink
ไฮเปอร์ลิงก์สำหรับให้ผู้ใช้รายงานปัญหาเกี่ยวกับภาพ Street View นี้ คุณต้องแสดงไฮเปอร์ลิงก์นี้ที่มุมขวาล่างของรูปภาพ และต้องมีข้อความลิงก์ที่ระบุว่า "รายงานปัญหาเกี่ยวกับรูปภาพนี้"
addressComponent
Structured Data Geocode ที่มีรายละเอียดเกี่ยวกับที่อยู่ของภาพพาโนรามา ดูข้อมูลเพิ่มเติมได้ที่คำขอและการตอบกลับการแปลงที่อยู่เป็นพิกัดภูมิศาสตร์ในเอกสารประกอบ Geocoding API
links
รายการรหัสภาพพาโนรามาที่ลิงก์กับภาพนี้ และมีส่วนหัวที่พบลิงก์ด้วย เช่น หากทิศทางเป็น 180° แสดงว่าภาพพาโนรามาที่ลิงก์อยู่ทางใต้ของภาพพาโนรามาปัจจุบัน โปรดทราบว่าเนื่องจากรหัสภาพพาโนรามามีลักษณะชั่วคราว คุณจึงไม่ควรใช้รหัสเหล่านี้ในเซสชันของผู้ใช้มากกว่า 1 รายการ

ภาพขนาดย่อของ Street View

คุณขอภาพ Street View ในรูปแบบ thumbnail ได้ ภาพขนาดย่อคือรูปภาพแบบไม่แบ่งส่วนที่มีขนาด ส่วนหัว ระดับเสียง และมุมมองที่ผู้ใช้กำหนด รูปภาพขนาดย่อมีความละเอียดต่ำกว่าไทล์ และมีขนาดเล็กกว่า คุณส่งคำขอภาพปกได้โดยส่งคำขอ GET ไปยังปลายทาง thumbnail ดังที่แสดงในโปรโตไทป์โค้ดต่อไปนี้

curl "https://tile.googleapis.com/v1/streetview/thumbnail?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&panoId=panoId&height=FROM_16_TO_250&width=FROM_16_TO_600&pitch=FROM-90_TO_90&yaw=FROM-360_TO_360&fov=FROM_30_TO_120"

ลองดูตัวอย่างโค้ดต่อไปนี้ ซึ่งจะดาวน์โหลดภาพขนาดย่อของภาพ Street View ที่ถ่ายใน Whistler แคนาดา

curl "https://tile.googleapis.com/v1/streetview/thumbnail?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&panoId=Zzl28rqGJgaL2IdkUleP8A&height=200&width=200&pitch=0&yaw=250&fov=80" --output /tmp/example_thumbnail.png

ภาพปก Street View ของ Whistler, แคนาดา

พารามิเตอร์ที่จำเป็น

panoId
รหัสที่ไม่ซ้ำกันของภาพปกที่ต้องการ คุณรับค่ารหัสภาพพาโนรามาได้จากปลายทาง panoIds หรือจากปลายทาง metadata ซึ่งทั้ง 2 รายการยอมรับพิกัดทางภูมิศาสตร์และแสดงผล panoId ที่เหมาะสม
session
โทเค็นเซสชันที่ถูกต้อง
key
คีย์ API

พารามิเตอร์ที่ไม่บังคับ

height
ระบุความสูงของภาพขนาดย่อเป็นพิกเซล ซึ่งอยู่ในช่วง 16 ถึง 250 พิกเซล หากไม่ได้ระบุความสูง ความสูงเริ่มต้นจะเป็นค่าสูงสุดที่อนุญาตซึ่งเท่ากับ 250 พิกเซล หากคุณระบุค่าที่อยู่นอกช่วง ระบบจะปรับภาพขนาดย่อเป็นค่าที่ถูกต้องซึ่งใกล้เคียงที่สุด
width
ระบุความกว้างของภาพขนาดย่อเป็นพิกเซล ซึ่งอยู่ในช่วง 16 ถึง 600 พิกเซล หากไม่ได้ระบุความกว้าง ความกว้างเริ่มต้นจะเป็นค่าสูงสุดที่อนุญาตซึ่งเท่ากับ 600 พิกเซล หากคุณระบุค่าที่อยู่นอกช่วง ระบบจะปรับภาพขนาดย่อเป็นค่าที่ถูกต้องซึ่งใกล้เคียงที่สุด
pitch
ระบุมุมของกล้องตามแกนแนวตั้ง ค่าที่ใช้ได้อยู่ในช่วง -90 ถึง 90 (รวม) ค่าเริ่มต้นคือ 0
yaw
ระบุทิศทางของกล้องตามแกนแนวนอน ค่าที่ใช้ได้อยู่ในช่วง -360 ถึง 360 (รวมค่าแรกและค่าสุดท้าย) ค่าเริ่มต้นคือ 0
fov
ระบุมุมมองแนวนอนที่แสดงเป็นองศา โดยมีค่าสูงสุด 120 เมื่อจัดการกับวิวพอร์ตขนาดคงที่ เช่น รูปภาพ Street View ขนาดที่กำหนดไว้ มุมมองจะแสดงการซูม โดยค่าที่เล็กกว่าจะระบุการซูมในระดับที่สูงขึ้น ค่าเริ่มต้นคือ 90

ชิ้นส่วนแผนที่ภาพ Street View

เมื่อได้รับ panoId แล้ว คุณจะขอชิ้นส่วนแผนที่ Street View ได้ คำขอไทล์คือคำขอ HTTPS GET ลองดูตัวอย่างต่อไปนี้

curl "https://tile.googleapis.com/v1/streetview/tiles/z/x/y?session=YOUR_SESSION_TOKEN&key=YOUR_API_KEY&panoId=panoId"

ในตัวอย่างนี้ z คือระดับการซูม และ x และ y คือพิกัดไทล์ของไทล์ Street View ที่ต้องการ ระดับการซูมในภาพพาโนรามาของ Street View ต้องอยู่ในช่วง [0,5] โดย 0 หมายถึงมุมมองที่กว้างที่สุด

ระดับการซูม ขอบเขตการมองเห็นโดยประมาณ
0 360°
1 180°
2 90°
3 45°
4 22.5°
5 11.25°

การตอบกลับของชิ้นส่วนแผนที่ Street View

คำขอชิ้นส่วนแผนที่ Street View ที่ดำเนินการสำเร็จจะแสดงผลรูปภาพในรูปแบบและขนาดที่คุณระบุในการตอบกลับ createSession

ผลลัพธ์ของคำขอ Tile ที่สำเร็จ

เมื่อซูมเป็นระดับ 0 ระบบจะปรับขนาดภาพพาโนรามาทั้งภาพเป็นไทล์ขนาด tileWidth x tileHeight เนื่องจากภาพพาโนรามามีขนาดที่ใหญ่กว่าในมิติข้อมูล x ไทล์จึงจะมีพื้นที่ว่างในมิติข้อมูล y ดังนี้

ระดับการซูมเป็น 0

เมื่อซูมระดับ 5 ระบบจะใช้ภาพพาโนรามาขนาดเต็มและแบ่งออกเป็นไทล์

คุณต้องแสดงข้อมูลลิขสิทธิ์กับภาพพาโนรามา Street View ทุกภาพ สตริงที่จะแสดงอาจแตกต่างกันไปในแต่ละภาพพาโนรามา หากต้องการดูข้อมูลลิขสิทธิ์ คุณต้องขอข้อมูลเมตาของ Street View จากนั้นจึงดูข้อมูลในช่อง copyright ของการตอบกลับ ดูข้อมูลเพิ่มเติมได้ที่การระบุแหล่งที่มาของข้อมูล