مرِّر المَعلمة routingParameters.origin في الطلب لتحديد إحداثيات خطوط الطول والعرض لنقطة بداية التوجيه. هذه المَعلمة مطلوبة لحساب المدة والمسافة إلى كل مكان في الردّ.
أدرِج routingSummaries في قناع الحقل لكي تتضمّن الاستجابة مصفوفة routingSummaries. تحتوي هذه المصفوفة على المدة والمسافة
من نقطة بداية التوجيه إلى كل مكان في الردّ.
يتيح لك "مستكشف واجهات برمجة التطبيقات" إرسال طلبات مباشرة لتتعرّف على واجهة برمجة التطبيقات وخياراتها:
تحتوي الاستجابة على مصفوفتَي JSON: تحتوي المصفوفة places على الأماكن المطابقة، وتحتوي المصفوفة routingSummaries على المدة والمسافة اللازمتَين للوصول إلى كل مكان:
يقع كل عنصر في المصفوفة routingSummaries في موقع المصفوفة المقابل لموقع المكان في المصفوفة places. أي أنّ العنصر في
routingSummaries[0] يتوافق مع المكان في places[0].
يجب أن يكون طول المصفوفة routingSummaries هو نفسه طول المصفوفة places. في حال عدم توفّر routingSummary لمكان ما، يكون إدخال المصفوفة فارغًا.
بما أنّ هذا المثال يحسب المدة والمسافة من نقطة بداية التوجيه إلى كل مكان، يحتوي الحقل routingSummaries.legs في الرد على عنصر Leg واحد يتضمّن duration وdistanceMeters من نقطة بداية التوجيه إلى المكان.
{"places":[{"formattedAddress":"1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia","displayName":{"text":"Gözleme King Sydney","languageCode":"en"}},{"formattedAddress":"367 Pitt St, Sydney NSW 2000, Australia","priceLevel":"PRICE_LEVEL_MODERATE","displayName":{"text":"Mother Chu's Vegetarian Kitchen","languageCode":"en"}},…]"routingSummaries":[{"legs":[{"duration":"597s","distanceMeters":2607}],"directionsUri":"https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0"},{"legs":[{"duration":"562s","distanceMeters":2345}],"directionsUri":"https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0"},…]}
من هذا المثال، يمكنك أن ترى أنّ المدة والمسافة من نقطة بداية التوجيه إلى أول مكان في النتائج هما 597 ثانية و2607 متر.
استخدام ميزة "البحث في الجوار"
في هذا المثال، يتم احتساب مدة السفر والمسافة إلى كل مكان في الردّ على طلب البحث القريب. يبحث هذا المثال عن مطاعم في سيدني، أستراليا، ويضبط قيود الموقع الجغرافي ونقطة انطلاق التوجيه على إحداثيات خط العرض وخط الطول نفسها:
ليس عليك استخدام الإحداثيات نفسها لكل من locationRestriction وlocationRestriction لتحديد نقطة بداية التوجيه. على سبيل المثال، يمكنك ضبط locationRestriction على النقطة المركزية في سيدني لتوجيه نتائج البحث نحو تلك الدائرة. ولكنك بعد ذلك ضبطت نقطة بداية التوجيه على إحداثيات منزلك، أي على موقع جغرافي مختلف داخل دائرة البحث. بعد ذلك، يوجّه الطلب نتائج البحث نحو الدائرة، ويحسب ملخّصات التوجيه استنادًا إلى موقع منزلك.
تحديد خيارات السفر
بشكلٍ تلقائي، يتم احتساب المدة والمسافة للسيارة. ومع ذلك، يمكنك التحكّم في نوع المركبة، بالإضافة إلى خيارات أخرى، في البحث.
استخدِم المَعلمة routingParameters.travelMode لضبط وسيلة النقل على DRIVE أو BICYCLE أو WALK أو TWO_WHEELER. لمزيد من المعلومات حول هذه الخيارات، يُرجى الاطّلاع على أنواع المركبات المتاحة للطرق.
استخدِم السمة routingParameters.routingPreference لضبط خيار التوجيه المفضّل على TRAFFIC_UNAWARE (الإعداد التلقائي) أو TRAFFIC_AWARE أو TRAFFIC_AWARE_OPTIMAL. يتميّز كل خيار بمستويات مختلفة من جودة البيانات ووقت الاستجابة. لمزيد من المعلومات، راجِع تحديد كيفية تضمين بيانات الزيارات أو عدم تضمينها.
تؤثّر السمة routingParameters.routingPreference في الاتجاهات الواردة في حقل "المعاينة" (إصدار ما قبل الإصدار العام) directionsUri لأنّ "خرائط Google" تعرض خيارات حركة المرور عند فتح الرابط.
استخدِم السمة routingParameters.routeModifiers لتحديد avoidTolls وavoidHighways وavoidFerries وavoidIndoor. لمزيد من المعلومات حول هذه الخيارات، يُرجى الاطّلاع على تحديد ميزات الطرق التي تريد تجنُّبها.
في المثال التالي، يمكنك تحديد وضع السفر على أنّه DRIVE وتجنُّب الطرق السريعة:
تاريخ التعديل الأخير: 2025-09-04 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-09-04 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eCalculate travel duration and distance to places returned by Text Search (New) or Nearby Search (New) by specifying the \u003ccode\u003eroutingParameters.origin\u003c/code\u003e and including \u003ccode\u003eroutingSummaries\u003c/code\u003e in the field mask.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eroutingSummaries\u003c/code\u003e array contains duration and distance from the origin to each place, mirroring the order of the \u003ccode\u003eplaces\u003c/code\u003e array.\u003c/p\u003e\n"],["\u003cp\u003eCustomize routing calculations by using \u003ccode\u003eroutingParameters\u003c/code\u003e to set travel mode (DRIVE, BICYCLE, WALK, TWO_WHEELER), routing preference (TRAFFIC_UNAWARE, TRAFFIC_AWARE, TRAFFIC_AWARE_OPTIMAL), and route modifiers (avoidTolls, avoidHighways, avoidFerries, avoidIndoor).\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003edirectionsUri\u003c/code\u003e field in the \u003ccode\u003eroutingSummaries\u003c/code\u003e (Preview, Pre-GA) provides a link to Google Maps directions for each place, using the specified routing parameters.\u003c/p\u003e\n"]]],[],null,["Calculate routing summary\n=========================\n\nTo use [Text Search (New)](/maps/documentation/places/web-service/text-search) or [Nearby Search (New)](/maps/documentation/places/web-service/nearby-search)\nto calculate the travel duration and distance to each place in the response:\n\n1. Pass the `routingParameters.origin` parameter in the request to specify the\n latitude and longitude coordinates of the routing origin. This parameter is\n required to calculate the duration and distance to each place in the\n response.\n\n2. Include `routingSummaries` in the field mask so that the response includes\n the `routingSummaries` array. This array contains the duration and distance\n from the routing origin to each place in the response.\n\n | **Note:** Adding `routingSummaries` in the field mask without also including either the `routingParameters.origin` parameter or the `searchAlongRouteParameters.polyline.encodedPolyline` parameter in the request causes an error.\n\nThe APIs Explorer lets you make live requests so that you can get familiar with\nthe API and the API options: \n[Try it!](#try_it)\n\nUse Text Search (New)\n---------------------\n\nIn the following request, you calculate the travel duration and distance to each\nplace in the Text Search (New) response: \n\n```scdoc\ncurl -X POST -d '{\n \"textQuery\" : \"Spicy Vegetarian Food in Sydney, Australia\",\n \"routingParameters\": {\n \"origin\": {\n \"latitude\": -33.8688,\n \"longitude\": 151.1957362\n }\n }\n}' \\\n-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \\\n-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \\\n'https://places.googleapis.com/v1/places:searchText'\n```\n\nThe response contains two JSON arrays: the `places` array contains the matching\nplaces, and the `routingSummaries` array containing the duration and distance to\ntravel to each place: \n\n```yaml\n{\n \"places\": [\n {\n object (/maps/documentation/places/web-service/reference/rest/v1/places)\n }\n ]\n \"routingSummaries\": [\n {\n object (/maps/documentation/places/web-service/reference/rest/v1/RoutingSummary)\n }\n}\n```\n\nEach element in the `routingSummaries` array is at the corresponding array\nlocation as the place in the `places` array. That is, the element at\n`routingSummaries[0]` corresponds to the place at `places[0]`.\n\nThe array length of `routingSummaries` is the same as the array length of\n`places`. In the case where the `routingSummary` for a place is not available,\nthe array entry is empty.\n\nBecause this example calculates the duration and distance from the routing\norigin to each place, the `routingSummaries.legs` field in the response contains a single\n`Leg` object that contains the `duration` and `distanceMeters` from\nthe routing origin to the place.\n| **Note:** This response also includes the Preview (pre-GA) `directionsUri` field in the routing summary for each place. This field contains a link to open directions to the place in Google Maps. The `routingParameters.origin` parameter is used as the directions origin, the place location is used as the destination, and the travel mode defaults to drive.\n| This product or feature is in Preview (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\ndescriptions](/maps/launch-stages). \n\n```json\n{\n \"places\": [\n {\n \"formattedAddress\": \"1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia\",\n \"displayName\": {\n \"text\": \"Gözleme King Sydney\",\n \"languageCode\": \"en\"\n }\n },\n {\n \"formattedAddress\": \"367 Pitt St, Sydney NSW 2000, Australia\",\n \"priceLevel\": \"PRICE_LEVEL_MODERATE\",\n \"displayName\": {\n \"text\": \"Mother Chu's Vegetarian Kitchen\",\n \"languageCode\": \"en\"\n }\n },\n ...\n ]\n \"routingSummaries\": [\n {\n \"legs\": [\n {\n \"duration\": \"597s\",\n \"distanceMeters\": 2607\n }\n ],\n \"directionsUri\": \"https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0\"\n },\n {\n \"legs\": [\n {\n \"duration\": \"562s\",\n \"distanceMeters\": 2345\n }\n ],\n \"directionsUri\": \"https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0\"\n },\n ...\n ]\n}\n```\n\nFrom this example, you can see that the duration and distance from the routing\norigin to the first place in the results is 597 seconds and 2607 meters.\n\nUse Nearby Search\n-----------------\n\nIn this example, you calculate the travel duration and distance to each place in\nthe Nearby Search response. This example searches for restaurants in Sydney,\nAustralia and sets the location restriction and the routing origin to the same\nlatitude and longitude coordinate: \n\n```scdoc\n curl -X POST -d '{\n \"includedTypes\": [\"restaurant\"],\n \"maxResultCount\": 10,\n \"locationRestriction\": {\n \"circle\": {\n \"center\": {\n \"latitude\": -33.8688,\n \"longitude\": 151.1957362},\n \"radius\": 500.0\n }\n },\n \"routingParameters\": {\n \"origin\": {\n \"latitude\": -33.8688,\n \"longitude\": 151.1957362\n }\n }\n }' \\\n -H 'Content-Type: application/json' -H \"X-Goog-Api-Key:API_KEY\" \\\n -H \"X-Goog-FieldMask: places.displayName,routingSummaries\" \\\n https://places.googleapis.com/v1/places:searchNearby\n```\n\nYou don't have to use the same coordinates for the `locationRestriction` and the\nfor routing origin. For example, you set the `locationRestriction` to the center\npoint of Sydney to bias the search results to that circle. But you then set the\nrouting origin to the coordinates of your house, meaning to a different location\nwithin the search circle. The request then biases the search results to the\ncircle, and calculates the routing summaries based on the location of your\nhouse.\n\nSpecify travel options\n----------------------\n\nBy default, the duration and distance calculations are for a car. However, you\ncan control the vehicle type, as well as other options, in the search.\n\n- Use the `routingParameters.travelMode` parameter to set the mode of\n transportation to `DRIVE`, `BICYCLE`, `WALK`, or `TWO_WHEELER`. For more\n information on these options, see [Available vehicle types for\n routes](/maps/documentation/routes/vehicles).\n\n | **Note:** The Routes API also supports a mode of `TRANSIT`, but that mode is not supported by the Places API.\n | **Note:** The `TWO_WHEELER` option is only supported in those countries listed at [Countries and regions supported for two-wheeled\n | vehicles](/maps/documentation/routes/coverage-two-wheeled).\n- Use the `routingParameters.routingPreference` property to set the routing preference option to `TRAFFIC_UNAWARE` (default), `TRAFFIC_AWARE`, or `TRAFFIC_AWARE_OPTIMAL`. Each option has varying levels of data quality and latency. For more information, see [Specify how and if to include traffic\n data](/maps/documentation/routes/config_trade_offs).\n\n The `routingParameters.routingPreference` property does affect the\n directions contained in the Preview (Pre-GA) `directionsUri` field because\n Google Maps displays traffic options when it opens the link.\n- Use the `routingParameters.routeModifiers` property to specify to `avoidTolls`, `avoidHighways`, `avoidFerries`, and `avoidIndoor`. For more information on these options, see [Specify route features to\n avoid](/maps/documentation/routes/route-modifiers).\n\nIn the next example, you specify the travel mode as `DRIVE` and to avoid\nhighways: \n\n```scdoc\ncurl -X POST -d '{\n \"textQuery\" : \"Spicy Vegetarian Food in Sydney, Australia\",\n \"routingParameters\": {\n \"origin\": {\n \"latitude\": -33.8688,\n \"longitude\": 151.1957362\n },\n \"travelMode\":\"DRIVE\",\n \"routeModifiers\": {\n \"avoidHighways\": true\n }\n }\n}' \\\n-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \\\n-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \\\n'https://places.googleapis.com/v1/places:searchText'\n```\n\nTry it!\n-------\n\nThe APIs Explorer lets you make sample requests so\nthat you can get familiar with the API and the API options.\n\n1. Select the API icon api\n on the right side of the page.\n\n2. Optionally edit the request parameters.\n\n3. Select the **Execute** button. In the dialog, choose the account\n that you want to use to make the request.\n\n4. In the APIs Explorer panel, select the fullscreen icon\n fullscreen to expand the APIs Explorer window."]]