流量模型使用特定算法和因素来预测交通状况对给定路线的总行程时间的影响。Routes API 提供不同的流量模型类型,用于确定计算交通中的时长时所用不同因素的优先级。您可以指定在计算路线或路线矩阵的持续时间时,希望路线使用的流量模型类型。设置流量模型类型后,duration 字段中返回的值会因您选择的流量模型而异。
Routes API 的 Compute Routes 和 Compute Route Matrix 方法均支持流量模型类型。
[null,null,["最后更新时间 (UTC):2025-07-30。"],[[["\u003cp\u003eThe Routes API offers different traffic models (\u003ccode\u003eBEST_GUESS\u003c/code\u003e, \u003ccode\u003ePESSIMISTIC\u003c/code\u003e, \u003ccode\u003eOPTIMISTIC\u003c/code\u003e) to predict travel times based on various traffic conditions.\u003c/p\u003e\n"],["\u003cp\u003eYou can specify the desired traffic model when calculating routes, with \u003ccode\u003eBEST_GUESS\u003c/code\u003e being the default, providing the most useful predictions for most use cases.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003ePESSIMISTIC\u003c/code\u003e models travel time based on bad traffic days, likely resulting in a longer estimated duration, while \u003ccode\u003eOPTIMISTIC\u003c/code\u003e uses good traffic days, potentially resulting in a shorter duration.\u003c/p\u003e\n"],["\u003cp\u003eLive traffic information is integrated into the \u003ccode\u003eBEST_GUESS\u003c/code\u003e model, making it potentially shorter than \u003ccode\u003eOPTIMISTIC\u003c/code\u003e or longer than \u003ccode\u003ePESSIMISTIC\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eTo use traffic models, include the \u003ccode\u003etrafficModel\u003c/code\u003e parameter in your request and specify \u003ccode\u003eroutes.duration\u003c/code\u003e in the field mask.\u003c/p\u003e\n"]]],["The Routes API's traffic models predict travel time, offering `BEST_GUESS` (default), `PESSIMISTIC` (longer), and `OPTIMISTIC` (shorter) durations. To use, set the origin, destination, and optional `departure_time`. Choose a `trafficModel` type and specify `routes.duration` in the field mask. The API calculates traffic-affected durations based on the selected model. Using `BEST_GUESS` integrate live information. The default is `BEST_GUESS`, and the duration returned varies depending on the chosen model. The service is pre-GA, it might have limited support and changes.\n"],null,["# Specify the traffic model type to use\n\n**European Economic Area (EEA) developers** If your billing address is in the European Economic Area, effective on 8 July 2025, the [Google Maps Platform EEA Terms of Service](https://cloud.google.com/terms/maps-platform/eea) will apply to your use of the Services. Functionality varies by region. [Learn more](/maps/comms/eea/faq).\n\n\u003cbr /\u003e\n\n| This product or feature is Experimental (pre-GA). Pre-GA products and features might have limited support, and changes to pre-GA products and features might not be compatible with other pre-GA versions. Pre-GA Offerings are covered by the [Google\n| Maps Platform Service Specific Terms](https://cloud.google.com/maps-platform/terms/maps-service-terms). For more information, see the [launch stage descriptions](/maps/launch-stages).\n\n\u003cbr /\u003e\n\nTraffic models use specific algorithms and factors to predict how traffic\nconditions impact total travel time for a given route. The Routes API\noffers different traffic model types to prioritize different factors used in\ncalculating duration in traffic. You can specify the traffic model type you'd\nlike your routes to use when calculating the duration for your routes or route\nmatrix. When you set the traffic model type, the value returned in the\n`duration` field varies depending on the traffic model you choose.\n\nBoth the Routes API `Compute Routes` and\n`Compute Route Matrix` methods support traffic model types.\n\nBy default, both methods use the `BEST_GUESS` traffic model type.\n\nTo specify a traffic type\n-------------------------\n\n1. Set your origin and destination.\n\n2. If your departure time is in the future, include the time using the\n `departure_time` parameter. If you don't specify a departure time, it\n defaults to now.\n\n3. Set the `routingPreference` parameter to `TRAFFIC_AWARE_OPTIMAL`. Setting the\n `routingPreference` to `TRAFFIC_UNAWARE` or `TRAFFIC_AWARE` is incompatible\n with the `trafficModel` parameter.\n\n4. Select the traffic model to use with the `trafficModel` parameter and\n one of the following types:\n\n - `BEST_GUESS` (default) to request that the returned `duration_in_traffic`\n is the best estimate of travel time given what is known about both\n historical traffic conditions and live traffic. Live traffic becomes more\n important the closer the `departure_time` is to now. Using the default type\n of `BEST_GUESS` gives the most useful predictions for the vast majority of\n use cases.\n\n - `PESSIMISTIC` to request that the returned `duration_in_traffic` models the\n time based on the historical traffic conditions on bad traffic days.\n This type gives an estimated duration that is most likely **longer** than\n the actual travel time on most days. Occasional days with particularly bad\n conditions may still exceed this estimate.\n\n - `OPTIMISTIC` to request that the returned `duration_in_traffic` models the\n time based on the historical traffic conditions on good traffic days.\n This type gives an estimated duration that is most likely **shorter** than\n the actual travel time on most days. Occasional days with particularly\n good conditions may still be faster than this estimate.\n\n For example: \n\n ```json\n \"trafficModel\": \"OPTIMISTIC\"\n ```\n\n \u003cbr /\u003e\n\n | **Note:** It is possible the `BEST_GUESS` travel time prediction may be shorter than `OPTIMISTIC` or longer than `PESSIMISTIC`, due to the way `BEST_GUESS` integrates live traffic information.\n5. Specify the `routes.duration` field in the field mask.\n\n **REST** \n\n ```json\n -H X-Goog-FieldMask: routes.duration\n ```\n\n **RPC** \n\n ```gdscript\n const (fieldMask = \"routes.duration\")\n ```\n\nWhen the Routes API estimates time in traffic, it uses the traffic\nmodel type you've requested.\n\nExample: Traffic model request\n------------------------------\n\nFor example, this request specifies that the duration be estimated using the\n`OPTIMISTIC` traffic model type at a specific departure time: \n\n```json\ncurl -X POST -H 'content-type: application/json' -d ' {\n\"origin\": {\n \"address\": \"Kyoto, Japan\"\n },\n\"destination\": {\n \"placeId\": \"ChIJrYtcv-urAWAR3XzWvXv8n_s\"\n },\n\"travelMode\": \"DRIVE\",\n\"routingPreference\": \"TRAFFIC_AWARE_OPTIMAL\",\n\"trafficModel\": \"OPTIMISTIC\"\n}' \\\n-H 'Content-Type: application/json' \\\n-H 'X-Goog-Api-Key: YOUR_API_KEY' \\\n-H 'X-Goog-FieldMask: routes.duration' \\\n'https://routes.googleapis.com/directions/v2:computeRoutes'\n```\n\nThis request returns the estimated duration using the `OPTIMISTIC` traffic model\ntype for the trip: \n\n```json\n\"duration\": \"1238s\"\n```\n\nIf you change the traffic model type to `PESSIMISTIC`, the returned duration is\nlonger: \n\n```json\n\"duration\": \"2436s\"\n```\n| **Note:** If you do not specify a `departureTime`, the implied departure is the request time. This means that you may get different values depending on when the request is sent."]]