ใช้โทเค็นเซสชันกับ Map Tiles API

โทเค็นเซสชันคือข้อมูล (UUID) ที่ใช้ในการเรียก REST เพื่อระบุเซสชัน ซึ่งเป็นชุดการแลกเปลี่ยนข้อความที่เกี่ยวข้อง คุณต้องใส่โทเค็นเซสชันในคำขอทั้งหมดสำหรับชิ้นส่วน 2 มิติและภาพ Street View คุณใส่ค่าดังกล่าวเป็นค่าของพารามิเตอร์ session ที่ต่อท้าย URL คำขอทั้งหมด

ใน Map Tiles API โทเค็นเซสชันจะแทนชุดตัวเลือกการแสดงผลที่กำหนดไว้ ซึ่งหมายความว่าคุณไม่จำเป็นต้องส่งชุดตัวเลือกการแสดงผลไปกับคำขอการ์ดแต่ละรายการ คุณสามารถใช้โทเค็นของเซสชันเดียวกันในหลายไคลเอ็นต์ได้ ปัจจุบันโทเค็นเซสชันจะใช้ได้เป็นเวลา 2 สัปดาห์นับจากเวลาที่ออก แต่อาจมีการเปลี่ยนแปลง คุณตรวจสอบเวลาหมดอายุของโทเค็นเซสชันได้ทุกเมื่อโดยดูที่ช่อง expiry ในข้อความตอบกลับ

คำขอโทเค็นของเซสชัน

หากต้องการขอโทเค็นเซสชัน ให้ส่งคำขอ HTTPS POST ไปยังปลายทาง createSession ดังที่แสดงในตัวอย่างต่อไปนี้ คุณต้องส่งคำขอที่มีส่วนหัว Content-Type: application/json

curl -X POST -d '{
  "mapType": "streetview",
  "language": "en-US",
  "region": "US"
}' \
-H 'Content-Type: application/json' \
"https://tile.googleapis.com/v1/createSession?key=YOUR_API_KEY"

ฟิลด์ที่จำเป็น

mapType

ประเภทของแผนที่ฐาน โดยค่านี้อาจเป็นค่าใดค่าหนึ่งต่อไปนี้

roadmap
ภาพแผนที่แบบชิ้นส่วนบนแผนที่แบบมาตรฐานของ Google Maps
satellite
ภาพถ่ายจากดาวเทียม
terrain
ภาพภูมิประเทศ เมื่อเลือก terrain เป็นประเภทแผนที่ คุณต้องรวมประเภทเลเยอร์ layerRoadmap ด้วย (อธิบายไว้ในส่วนช่องที่ไม่บังคับ)
streetview
ภาพพาโนรามาของ Street View ดูข้อมูลเพิ่มเติมได้ที่ชิ้นส่วนแผนที่ Street View
language

แท็กภาษา IETF ที่ระบุภาษาที่ใช้ในการแสดงข้อมูลบนการ์ด ตัวอย่างเช่น en-US ระบุภาษาอังกฤษที่พูดในสหรัฐอเมริกา

region

ตัวระบุภูมิภาคของที่เก็บข้อมูลภาษาทั่วไป (อักษรตัวพิมพ์ใหญ่ 2 ตัว) ที่แสดงสถานที่ตั้งของผู้ใช้ เช่น US

ช่องที่ไม่บังคับ

imageFormat
ระบุรูปแบบไฟล์ที่จะส่งคืน ค่าที่ถูกต้องคือ jpeg หรือ png ไฟล์ JPEG ไม่รองรับความโปร่งใส จึงไม่แนะนำให้ใช้สำหรับหน้าต่างวางซ้อน หากไม่ระบุ imageFormat ระบบจะเลือกรูปแบบที่ดีที่สุดสำหรับการ์ดโดยอัตโนมัติ
scale

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

  • scaleFactor1x: ค่าเริ่มต้น
  • scaleFactor2x: เพิ่มขนาดป้ายกำกับเป็น 2 เท่าและนำป้ายกำกับฟีเจอร์ย่อยออก
  • scaleFactor4x: ขนาดป้ายกำกับสี่ส่วนและนำป้ายกำกับฟีเจอร์ย่อยออก

ตัวอย่างต่อไปนี้แสดงให้เห็นผลกระทบของการปรับขนาดองค์ประกอบแผนที่

ปัจจัยสเกล 1 เท่า ปัจจัยสเกล 2 เท่า
แผนที่แสดงตัวคูณมาตราส่วน 1x แผนที่แสดงตัวคูณมาตราส่วน 2 เท่า
highDpi
ระบุว่าจะแสดงการ์ดความละเอียดสูงหรือไม่ หากปัจจัยที่มีผลต่อขนาดเพิ่มขึ้น ระบบจะใช้ highDpi เพื่อเพิ่มขนาดของการ์ด โดยปกติแล้ว การเพิ่มปัจจัยที่มีผลต่อขนาดจะขยายชิ้นส่วนที่ได้เป็นรูปภาพขนาดเดียวกันซึ่งทำให้คุณภาพลดลง เมื่อใช้ highDpi ขนาดที่ได้จะเพิ่มขึ้นตามไปด้วย และรักษาคุณภาพไว้ DPI ย่อมาจาก Dots per Inch และ High DPI หมายความว่าไทล์แสดงผลโดยใช้จุดต่อนิ้วมากกว่าปกติ ถ้าเป็น true จำนวนพิกเซลในขนาด x และ y แต่ละขนาดจะคูณด้วยปัจจัยของมาตราส่วน (ซึ่งก็คือ 2x หรือ 4x) พื้นที่ที่ครอบคลุมของไทล์จะไม่มีการเปลี่ยนแปลง พารามิเตอร์นี้ใช้ได้เฉพาะกับ scale ค่า 2x หรือ 4x การอัปเดตนี้ไม่มีผลต่อ การ์ดขนาด 1 เท่า
ปัจจัยสเกล 1 เท่า ปัจจัยสเกล 2x DPI สูง
แผนที่แสดงที่ความละเอียดปกติ แผนที่จะแสดงที่ความละเอียด DPI สูง 2 เท่า
layerTypes

อาร์เรย์ของค่าที่ระบุประเภทเลเยอร์ที่เพิ่มลงในแผนที่ ค่าที่ใช้ได้มีดังนี้

layerRoadmap
ต้องระบุหากคุณระบุ terrain เป็นประเภทแผนที่ และยังเลือกวางซ้อนบนแผนที่ประเภท satellite ได้ด้วย ไม่มีผลต่อชิ้นส่วนแผนกลยุทธ์
layerStreetview
แสดงถนนและสถานที่ที่พร้อมใช้งาน Street View โดยใช้ขอบสีน้ำเงินบนแผนที่
layerTraffic
แสดงสภาพการจราจรปัจจุบัน
styles

อาร์เรย์ของออบเจ็กต์รูปแบบ JSON ที่ระบุลักษณะและระดับรายละเอียดของฟีเจอร์แผนที่ เช่น ถนน สวนสาธารณะ และพื้นที่ที่เพิ่มขึ้น การจัดรูปแบบใช้สำหรับปรับแต่งแผนที่ฐานของ Google แบบมาตรฐาน พารามิเตอร์ styles จะใช้ได้ก็ต่อเมื่อประเภทการแมปเป็น roadmap เท่านั้น สำหรับไวยากรณ์ของรูปแบบที่สมบูรณ์ โปรดดูการอ้างอิงรูปแบบ

overlay

ค่าบูลีนที่ระบุว่า layerTypes ควรแสดงเป็นการวางซ้อนแยกต่างหากหรือรวมกับภาพฐาน เมื่อ true แผนที่ฐานจะไม่ปรากฏ หากคุณยังไม่ได้กำหนด layerTypes ระบบจะไม่สนใจค่านี้

ตัวอย่างเช่น การขอแผนที่ประเภท satellite ที่มีเลเยอร์ layerRoadmap และตั้งค่า overlay เป็น false จะได้ผลลัพธ์เป็นชิ้นส่วนแผนที่เทียบเท่ากับ hybrid ประเภทแผนที่ที่ใช้ใน Maps JavaScript API (ภาพซ้าย) แผนที่และเลเยอร์ประเภทเดียวกันที่ตั้งค่า overlay เป็น true จะส่งผลให้เกิดแผนที่โปร่งใสที่มีการวางซ้อนแผนที่ ซึ่งจัดรูปแบบอย่างเหมาะสมสำหรับการซ้อนทับภาพดาวเทียม (ภาพขวา)

overlay: เท็จ overlay: จริง
ตั้งค่าโฆษณาซ้อนทับเป็น "เท็จ" ตั้งค่าการวางซ้อนเป็น "จริง"

JSON ต่อไปนี้เป็นตัวอย่างของเนื้อหาคำขอทั่วไปซึ่งมีทั้งฟิลด์ที่จำเป็นและฟิลด์ที่ไม่บังคับ

{
  "mapType": "satellite",
  "language": "en-US",
  "region": "us",
  "layerTypes": [ "layerRoadmap", "layerStreetview" ],
  "overlay":  true,
  "scale": "scaleFactor1x",
  "styles": [
    {
      "stylers": [
        { "hue": "#00ffe6" },
        { "saturation": -20 }
      ]
    },{
      "featureType": "road",
      "elementType": "geometry",
      "stylers": [
        { "lightness": 100 },
        { "visibility": "simplified" }
      ]
    }
  ]
}

ตัวอย่างนี้แสดงการวางซ้อนที่เหมาะสำหรับการถ่ายภาพจากดาวเทียม ตัวอย่างนี้จะมีการวางซ้อนทั้งแผนกลยุทธ์และ Street View แผนที่ผลลัพธ์จะแสดงผลพร้อมด้วยชื่อและข้อมูลเป็นภาษาอังกฤษตามที่ใช้ในสหรัฐอเมริกา

apiOptions: อาร์เรย์ของค่าที่ระบุตัวเลือกเพิ่มเติมที่จะนำไปใช้ ตัวเลือกที่รองรับมีดังนี้

  • MCYJ5E517XR2JC - เลือกใช้แผนที่รูปแบบใหม่ ในระหว่างระยะเวลาการเลือกใช้ คำขอจะได้รับรูปแบบที่มีอยู่ เว้นแต่จะระบุค่านี้ไว้

การตอบกลับโทเค็นของเซสชัน

JSON ต่อไปนี้เป็นตัวอย่างเนื้อหาการตอบสนอง

{
  "session": "IgAAAHGU9jnAU4KOAfwY3Bcd6eH_WxQsyocSBAdUnAr9pnvTTNXtF9c_27RBo94ytEXTDg",
  "expiry": "1361828036",
  "tileWidth": 256,
  "tileHeight": 256,
  "imageFormat": "png"
}

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

session
ค่าโทเค็นเซสชันที่คุณต้องรวมไว้ในคำขอ Map Tiles API ทั้งหมด
expiry
สตริงที่มีเวลา (เป็นวินาทีนับจาก Epoch) ที่โทเค็นหมดอายุ โทเค็นเซสชันจะใช้ได้ 2 สัปดาห์นับจากเวลาที่สร้าง แต่นโยบายนี้อาจเปลี่ยนแปลงโดยไม่แจ้งให้ทราบล่วงหน้า
tileWidth
ความกว้างของชิ้นส่วนวัดเป็นพิกเซล
tileHeight
ความสูงของไทล์ที่วัดเป็นพิกเซล
imageFormat
รูปแบบรูปภาพ ซึ่งอาจเป็น png หรือ jpeg ก็ได้