ภาพ 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 ได้โดยเรียกใช้วิธีใดวิธีหนึ่งต่อไปนี้

วิธีการ คำอธิบาย
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 ของการตอบกลับ ดูข้อมูลเพิ่มเติมได้ที่การระบุแหล่งที่มาของข้อมูล