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

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

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

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

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

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

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

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

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

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

เรียกดูรหัสสถานที่จาก 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 อาจเรียกใช้การค้นหาเพื่อแยกแยะที่อยู่ที่คล้ายกัน เช่น "1st Street" อาจเป็นค่าที่สมบูรณ์หรือค่าบางส่วนสำหรับ "1st Street NE" หรือ "1st St SE" ผลลัพธ์นี้อาจแตกต่างจากข้อมูลที่ Geocoding API แสดง เพื่อหลีกเลี่ยงการตีความที่ผิดพลาด โดยใช้รหัสสถานที่

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

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

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

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

{
  []
}

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

Plus Codes ต้องมีรูปแบบเป็นโค้ดส่วนกลางหรือรหัสประกอบ ดังนี้

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

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

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

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

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

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

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