ระบุตําแหน่งสําหรับเส้นทาง

นักพัฒนาแอปในเขตเศรษฐกิจยุโรป (EEA)

หากต้องการคำนวณเส้นทาง คุณต้องระบุตำแหน่งต้นทางและปลายทางของเส้นทางเป็นอย่างน้อย คุณกำหนดตำแหน่งเหล่านี้เป็นจุดอ้างอิงในเส้นทาง

นอกจากจุดต้นทางและจุดปลายทางแล้ว คุณยังระบุประเภทต่างๆ ของ จุดแวะพักและวิธีจัดการจุดแวะพักสำหรับเส้นทางได้ด้วย ดูข้อมูลและ ตัวอย่างเพิ่มเติมได้ที่หัวข้อต่อไปนี้

ระบุสถานที่สำหรับเส้นทาง

คุณแสดงตำแหน่งได้โดยการสร้างออบเจ็กต์จุดอ้างอิง (REST) หรือจุดอ้างอิง (gRPC) ใน คำจำกัดความของจุดอ้างอิง คุณสามารถระบุตำแหน่งได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้

คุณสามารถระบุตำแหน่งสำหรับจุดอ้างอิงทั้งหมดในคำขอได้ในลักษณะเดียวกัน หรือจะผสมกันก็ได้ เช่น คุณสามารถใช้พิกัดละติจูด/ลองจิจูดสำหรับจุดแวะพักต้นทาง และใช้รหัสสถานที่สำหรับจุดแวะพักปลายทาง

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

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

ระบุสถานที่ตั้งเป็นรหัสสถานที่

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

ดึงรหัสสถานที่จาก Geocoding API และ Places API (รวมถึง Place Autocomplete) ดูข้อมูลเพิ่มเติมเกี่ยวกับรหัสสถานที่ได้ที่ภาพรวมรหัสสถานที่

ตัวอย่างต่อไปนี้ใช้พร็อพเพอร์ตี้ placeId เพื่อส่งรหัสสถานที่สำหรับทั้ง origin และ destination

{
  "origin":{
    "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o"
  },
  "destination":{
    "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU"
  },
  ...
}

ระบุสถานที่ตั้งเป็นพิกัดละติจูดและลองจิจูด

หากต้องการกำหนดตำแหน่งในจุดอ้างอิง ให้ระบุ ตำแหน่ง (REST) หรือ ตำแหน่ง(gRPC) โดยใช้ พิกัดละติจูด/ลองจิจูด

เช่น ระบุจุดอ้างอิงสำหรับเส้นทาง origin และ destination โดยใช้พิกัด latitude และ longitude ดังนี้

{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
...
}

ระบุสถานที่ตั้งเป็นสตริงที่อยู่

สตริงที่อยู่คือที่อยู่ที่แท้จริงซึ่งแสดงด้วยสตริง (เช่น "1600 Amphitheatre Parkway, Mountain View, CA") การแปลงรหัสพิกัดภูมิศาสตร์คือกระบวนการ แปลงสตริงที่อยู่เป็นพิกัดละติจูดและลองจิจูด (เช่น ละติจูด 37.423021 และลองจิจูด -122.083739)

เมื่อส่งสตริงที่อยู่เป็นตำแหน่งของจุดแวะพัก Routes API จะแปลงสตริงเป็นพิกัดละติจูดและลองจิจูดภายใน โดยใช้การแปลงรหัสพิกัดภูมิศาสตร์

เช่น หากต้องการคำนวณเส้นทาง คุณต้องระบุจุดอ้างอิงสำหรับเส้นทาง origin และ destination โดยใช้สตริงที่อยู่

{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "450 Serra Mall, Stanford, CA 94305, USA"
  },
  ...
}

ในตัวอย่างนี้ Routes API จะเข้ารหัสภูมิศาสตร์ทั้ง 2 ที่อยู่เพื่อแปลงเป็น พิกัดละติจูดและลองจิจูด

หากค่าที่อยู่ไม่ชัดเจน Routes API อาจเรียกใช้การค้นหาเพื่อ แยกความแตกต่างจากที่อยู่ที่คล้ายกัน เช่น "ถนนที่ 1" อาจเป็นค่าที่สมบูรณ์หรือค่าบางส่วนสำหรับ "ถนนที่ 1 ตอ." หรือ "ถนนที่ 1 ตส." ผลลัพธ์นี้อาจแตกต่างจากผลลัพธ์ที่ Geocoding API แสดง คุณหลีกเลี่ยงการตีความที่อาจผิดพลาดได้โดยใช้รหัสสถานที่

ตั้งค่าภูมิภาคสำหรับที่อยู่

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

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE"
}

ในตัวอย่างนี้ ระบบจะตีความ "Toledo" เป็นเมืองในรัฐโอไฮโอของสหรัฐอเมริกา ไม่ใช่ในสเปน ดังนั้น คำขอจะแสดงผลอาร์เรย์ว่าง ซึ่งหมายความว่าไม่มีเส้นทาง

{
  []
}

คุณกำหนดค่า API ให้แสดงผลลัพธ์ที่เอนเอียงไปยังภูมิภาคใดภูมิภาคหนึ่งได้โดย รวมพารามิเตอร์ regionCode พารามิเตอร์นี้จะระบุรหัสภูมิภาคเป็นค่า 2 อักขระของ ccTLD ("โดเมนระดับบนสุด") รหัส ccTLD ส่วนใหญ่จะเหมือนกับรหัส ISO 3166-1 โดยมีข้อยกเว้นที่สำคัญบางประการ ตัวอย่างเช่น ccTLD ของสหราชอาณาจักรคือ "uk" (.co.uk) ขณะที่รหัส ISO 3166-1 คือ "gb" (ในทางเทคนิคสำหรับนิติบุคคลของ "สหราชอาณาจักรบริเตนใหญ่และไอร์แลนด์เหนือ")

คำขอเส้นทางจาก "โตเลโด" ไปยัง "มาดริด" ที่มีพารามิเตอร์ regionCode จะแสดงผลลัพธ์ที่เหมาะสมเนื่องจากระบบตีความ "โตเลโด" เป็นเมืองในสเปน

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE",
  "regionCode": "es"
}

ตอนนี้การตอบกลับมีเส้นทางที่คำนวณจากโตเลโด ประเทศสเปน ไปยัง มาดริด ประเทศสเปน ดังนี้

{
  "routes": [
    {
      "distanceMeters": 75330,
      "duration": "4137s",
      ...
    }
  ]
}

ระบุสถานที่ตั้งเป็น Plus Code

หลายคนไม่มีที่อยู่ที่แน่นอน ซึ่งอาจทำให้รับสินค้าที่นำส่งได้ยาก หรือผู้ที่มีที่อยู่อาจต้องการรับ การนำส่งในสถานที่ที่เจาะจงมากขึ้น เช่น ประตูหลังหรือท่า เทียบเรือ

Plus Codes เป็นเหมือนที่อยู่ของผู้คนหรือสถานที่ซึ่งไม่มีที่อยู่อย่างเป็นทางการ Plus Codes ไม่ใช่ข้อมูลที่อยู่ที่ประกอบด้วยชื่อถนนและบ้านเลขที่ แต่จะเป็นชุดตัวเลขและตัวอักษรที่สร้างขึ้นโดยอิงจากพิกัดละติจูด/ลองจิจูด

Google พัฒนา Plus Codes เพื่อให้ทุกคนและทุกสิ่งได้รับประโยชน์จากที่อยู่ โค้ด Plus คือการอ้างอิงตำแหน่งที่เข้ารหัส ซึ่งได้มาจากพิกัดละติจูด/ลองจิจูด และ แสดงถึงพื้นที่ขนาด 1/8000 ขององศา x 1/8000 ขององศา (ประมาณ 14 ม. x 14 ม. ที่เส้นศูนย์สูตร) หรือเล็กกว่า คุณสามารถใช้ Plus Codes แทนที่อยู่ ในสถานที่ที่ไม่มีที่อยู่หรืออาคารไม่มี หมายเลข หรือถนนไม่มีชื่อ

Plus Codes ต้องจัดรูปแบบเป็นรหัสสากลหรือรหัสผสม

  • รหัสสากลประกอบด้วยรหัสพื้นที่ 4 ตัวและรหัสท้องถิ่น 6 ตัวขึ้นไป

    เช่น สำหรับที่อยู่ "1600 Amphitheatre Parkway, Mountain View, CA" รหัสสากลคือ "849V" และรหัสท้องถิ่นคือ "CWC8+R9" จากนั้นใช้โค้ด Plus ทั้ง 10 อักขระเพื่อระบุค่าตำแหน่งเป็น "849VCWC8+R9"

  • รหัสผสมประกอบด้วยรหัสท้องถิ่นที่มีความยาว 6 อักขระขึ้นไป รวมกับสถานที่ตั้งที่ชัดเจน

    เช่น ที่อยู่ "450 Serra Mall, Stanford, CA 94305, USA" มีรหัสท้องถิ่นเป็น "CRHJ+C3" สำหรับที่อยู่ที่ซับซ้อน ให้รวมรหัสท้องถิ่นกับส่วนเมือง รัฐ รหัสไปรษณีย์ และประเทศ ของที่อยู่ในรูปแบบ "CRHJ+C3 สแตนฟอร์ด แคลิฟอร์เนีย 94305 สหรัฐอเมริกา"

    เช่น คำนวณเส้นทางโดยระบุจุดอ้างอิงสำหรับเส้นทาง origin และ destination โดยใช้ Plus Codes

    {
      "origin":{
        "address": "849VCWC8+R9"
      },
      "destination":{
        "address": "CRHJ+C3 Stanford, CA 94305, USA"
      },
      "travelMode": "DRIVE"
    }

API ของ Google Maps Platform รองรับ Plus Codes ซึ่งรวมถึง การเติมข้อความอัตโนมัติของสถานที่ รายละเอียดสถานที่ Directions API (เดิม) และ Geocoding API เช่น คุณสามารถใช้ Geocoding API เพื่อทำการ Geocoding แบบย้อนกลับของตำแหน่งที่ระบุโดยพิกัดละติจูด/ลองจิจูดเพื่อกำหนด Plus Code ของตำแหน่ง