Chỉ định vị trí cho một ma trận tuyến đường

Để tính toán ma trận tuyến đường, bạn phải chỉ định tối thiểu vị trí của một điểm xuất phát của một tuyến đường và một điểm đến của một tuyến đường.

Chỉ định vị trí cho một tuyến đường

Bạn biểu thị một vị trí bằng cách tạo Điểm tham chiếu (REST) hoặc đối tượng Điểm tham chiếu (gRPC). Trong điểm tham chiếu, bạn có thể chỉ định một vị trí theo bất kỳ cách nào sau đây:

Bạn có thể chỉ định vị trí cho tất cả các điểm tham chiếu trong một yêu cầu theo cách tương tự, hoặc có thể kết hợp chúng. Ví dụ: bạn có thể sử dụng toạ độ vĩ độ/kinh độ cho điểm tham chiếu gốc và sử dụng mã địa điểm cho điểm tham chiếu đích.

Để đảm bảo tính hiệu quả và chính xác, hãy sử dụng mã địa điểm thay vì vĩ độ/kinh độ toạ độ hoặc chuỗi địa chỉ. Mã địa điểm phải rõ ràng và phải cung cấp các lợi ích của mã hoá địa lý trong việc định tuyến, chẳng hạn như điểm truy cập và các biến lưu lượng truy cập. Chúng giúp tránh những tình huống sau mà có thể là do các cách khác chỉ định một vị trí:

  • Sử dụng vĩ độ/kinh độ có thể dẫn đến việc vị trí bám theo đường gần với các toạ độ đó nhất – đây có thể không phải là điểm truy cập vào bất động sản hoặc thậm chí là một con đường nhanh chóng hoặc an toàn dẫn đến điểm đến.
  • Trước tiên, chuỗi địa chỉ phải được mã hoá địa lý bằng API tuyến đường để chuyển đổi chúng lên các toạ độ vĩ độ/kinh độ trước khi có thể tính toán một tuyến đường. Lượt chuyển đổi này có thể ảnh hưởng đến hiệu suất.

Chỉ định vị trí làm mã địa điểm

Bạn có thể sử dụng mã địa điểm để chỉ định vị trí của một điểm tham chiếu. Bởi vì vĩ độ và kinh độ được gắn với đường, bạn có thể thấy mã địa điểm sẽ mang lại kết quả tốt hơn trong một số trường hợp.

Truy xuất ID địa điểm từ API mã hoá địa lýAPI Địa điểm (bao gồm Địa điểm Tự động hoàn thành). Để biết thêm về mã địa điểm, hãy xem Tổng quan về mã địa điểm.

Ví dụ sau đây sử dụng thuộc tính placeId để truyền mã địa điểm cho cả hai origindestination:

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

Chỉ định vị trí dưới dạng vĩ độ và kinh độ

Để xác định vị trí trong một điểm tham chiếu, hãy chỉ định Vị trí (REST) hoặc Vị trí(gRPC) bằng cách sử dụng vĩ độ/kinh độ.

Ví dụ: chỉ định một điểm tham chiếu cho tuyến origindestination bằng toạ độ latitudelongitude:

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

Chỉ định vị trí làm chuỗi địa chỉ

Chuỗi địa chỉ là các địa chỉ bằng chữ được biểu thị bằng một chuỗi (chẳng hạn như "1600 Amphitheatre Parkway, Mountain View, CA"). Mã hoá địa lý là quá trình chuyển đổi một chuỗi địa chỉ thành vĩ độ và kinh độ (chẳng hạn như vĩ độ 37.423021 và kinh độ -122.083739).

Khi bạn truyền một chuỗi địa chỉ làm vị trí của một điểm tham chiếu, Routes API (API Tuyến đường) mã hoá địa lý nội bộ chuỗi để chuyển đổi chuỗi thành vĩ độ và kinh độ toạ độ.

Ví dụ: để tính toán một tuyến đường, bạn phải chỉ định một điểm tham chiếu cho tuyến đường origindestination sử dụng chuỗi địa chỉ:

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

Trong ví dụ này, API Tuyến đường mã hoá địa lý cả hai địa chỉ để chuyển đổi chúng thành vĩ độ và kinh độ.

Nếu giá trị địa chỉ không rõ ràng, API Tuyến đường có thể gọi một lệnh tìm kiếm để hãy phân biệt với những địa chỉ tương tự. Ví dụ: "Đường số 1" có thể là một giá trị đầy đủ hoặc một phần giá trị của "đường số 1 ĐB" hoặc "1st St SE". Chiến dịch này kết quả có thể khác với kết quả do API mã hoá địa lý trả về. Bạn có thể tránh có thể bị hiểu sai khi sử dụng mã địa điểm.

Đặt khu vực cho địa chỉ

Nếu bạn truyền một chuỗi địa chỉ không đầy đủ làm vị trí của một điểm tham chiếu, thì API có thể sử dụng vĩ độ/kinh độ được mã hoá địa lý không chính xác. Ví dụ: bạn đưa ra yêu cầu chỉ định "Toledo" làm nguồn gốc và "Madrid" với tư cách là điểm đến cho tuyến đường lái xe:

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

Trong ví dụ này, "Toledo" được hiểu là một thành phố ở tiểu bang Ohio ở Hoa Kỳ, chứ không phải ở Tây Ban Nha. Do đó, yêu cầu này sẽ trả về một mảng trống, nghĩa là không có tuyến nào tồn tại:

{
  []
}

Bạn có thể định cấu hình API để trả về kết quả sai lệch về một khu vực cụ thể bằng cách bao gồm cả tham số regionCode. Tham số này chỉ định mã vùng làm ccTLD ("miền cấp cao nhất") 2 ký tự. Hầu hết các mã ccTLD (miền cấp cao nhất theo mã quốc gia) đều giống với mã ISO 3166-1, trong đó một số ngoại lệ đáng chú ý. Ví dụ: ccTLD (miền cấp cao nhất theo mã quốc gia) của Vương quốc Anh là "uk" (.co.uk) trong khi mã ISO 3166-1 của trang web là "gb" (về mặt kỹ thuật cho thực thể " Vương quốc Anh và Bắc Ireland").

Yêu cầu chỉ đường đến "Toledo" thành "Madrid" bao gồm regionCode tham số trả về kết quả phù hợp bởi vì "Toledo" được diễn giải là thành phố ở Tây Ban Nha:

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

Câu trả lời hiện chứa tuyến đường được tính từ Toledo, Tây Ban Nha đến Madrid, Tây Ban Nha:

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

Hãy chỉ định một vị trí làm Plus Code

Nhiều người không có địa chỉ chính xác, điều này có thể gây khó khăn cho họ để nhận nội dung phân phối. Hoặc những người có địa chỉ có thể thích chấp nhận việc phân phối tại các vị trí cụ thể hơn, chẳng hạn như lối vào sau hoặc tại nơi bốc hàng gắn vào đế sạc.

Plus Code giống như địa chỉ đường phố của những người hoặc địa điểm không có địa chỉ thực tế của bạn. Thay vì địa chỉ có tên và số đường, Plus Codes dựa trên toạ độ vĩ độ/kinh độ, và được hiển thị dưới dạng số và chữ cái.

Google đã phát triển Plus Codes để mang lại lợi ích của địa chỉ cho mọi người và mọi thứ. Plus Code là một tham chiếu vị trí, bắt nguồn từ vĩ độ/kinh độ đại diện cho một diện tích: 1/8000 của độ x 1/8000 của độ (khoảng 14m x 14m tại đường xích đạo) hoặc nhỏ hơn. Bạn có thể dùng Plus Codes để thay thế cho địa chỉ đường phố ở nơi không tồn tại hoặc nơi không có toà nhà được đánh số hoặc đường phố không được đặt tên.

Mã cộng phải có định dạng là mã toàn cầu hoặc mã kết hợp:

  • Mã toàn cầu bao gồm mã vùng gồm 4 ký tự và 6 hoặc mã cục bộ dài hơn.

    Ví dụ: đối với địa chỉ "1600 Amphitheatre Parkway, Mountain View, CA", mã toàn cầu là "849V" và mã cục bộ là "CWC8+R9". Sau đó, bạn sử dụng toàn bộ Plus Code gồm 10 ký tự để chỉ định giá trị vị trí là "849VCWC8+R9".

  • Mã kết hợp bao gồm 6 ký tự trở lên mã cục bộ được kết hợp với một vị trí rõ ràng.

    Ví dụ: địa chỉ "450 OAuth Mall, Stanford, CA 94305, Hoa Kỳ" có mã địa phương là "CRHJ+C3". Cho hợp chất địa chỉ, kết hợp mã địa phương với thành phố, tiểu bang, mã bưu chính và quốc gia phần địa chỉ ở dạng "CRHJ+C3 Stanford, CA 94305, USA".

    Ví dụ: tính toán một tuyến đường bằng cách chỉ định một điểm tham chiếu cho tuyến đường origindestination bằng Plus Codes:

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

Plus Code được hỗ trợ trong các API của Nền tảng Google Maps, bao gồm Tự động hoàn thành địa điểm, Thông tin về địa điểm, API Chỉ đườngAPI mã hoá địa lý. Ví dụ: bạn có thể sử dụng API mã hoá địa lý để đảo ngược mã hoá địa lý một vị trí được xác định bằng toạ độ vĩ độ/kinh độ để xác định Plus Code của vị trí.