denna tjänst är också tillgänglig som en del av klientsidan kartor JavaScript API, eller för serversidan användning med Java-klienten, Python klient, Go klient och Nod.js-klient för Google Maps-tjänster.
- introduktion
- innan du börjar
- Avståndsmatrisförfrågningar
- HTTPS eller HTTP
- begär parametrar
- obligatoriska parametrar
- valfria parametrar
- reslägen
- trafikinformation
- begränsningar
- enhetssystem
- Distansmatrissvar
- Avståndsmatrissvarselement
- statuskoder
- toppnivåstatuskoder
- statuskoder på Elementnivå
- felmeddelanden
- rader
- element
- sensorparametern
introduktion
Distance Matrix API är en tjänst som tillhandahåller reseavstånd och tid för en matris av ursprung och destinationer. API Returnerar information baserat på den rekommenderade rutten mellan start-och slutpunkter, beräknat av Google Maps API, och består av rader som innehåller duration
och distance
värden för varje par.
Obs: Denna tjänst returnerar inte detaljerad ruttinformation. Ruttinformation kan erhållas genom att skicka önskat enda ursprung och destination till riktnings API.
innan du börjar
detta dokument är avsett för utvecklare som vill beräkna reseavstånd och tid mellan ett antal punkter i kartor som tillhandahålls av en av Google Maps API: er. Det ger en introduktion till att använda API och referensmaterial på tillgängliga parametrar.
innan du börjar utveckla med Distance Matrix API, granska autentiseringskraven (du behöver en API-nyckel) och API-användnings-och faktureringsinformation (du måste aktivera fakturering på ditt projekt).
Avståndsmatrisförfrågningar
en API-begäran om Avståndsmatris har följande form:
där outputFormat
kan vara något av följande värden:
-
json
(rekommenderas), indikerar utgång i JavaScript Object Notation (JSON); eller -
xml
, indikerar utdata som XML.
Obs: webbadresser måste vara korrekt kodade för att vara giltiga och är begränsade till 8192 tecken för alla webbtjänster. Var medveten om denna gräns när du konstruerar dina webbadresser. Observera att olika webbläsare, proxies och servrar kan ha olika URL-teckengränser också.
HTTPS eller HTTP
säkerhet är viktigt och HTTPS rekommenderas när det är möjligt, särskilt för applikationer som innehåller känsliga användardata, till exempel en användares plats, i förfrågningar. Att använda HTTPS-kryptering gör din applikation säkrare och mer motståndskraftig mot snooping eller manipulering.
om HTTPS inte är möjligt, för att komma åt Distansmatrisen API över HTTP, använd:
begär parametrar
vissa parametrar krävs medan andra är valfria. Som standard i webbadresser separeras alla parametrar med tecknet ampersand (&
). Alla reserverade tecken (till exempel plustecknet ”+”) måste vara URL-kodade.Listan över parametrar och deras möjliga värden räknas upp nedan.
obligatoriska parametrar
-
origins
— utgångspunkten för beräkning av reseavstånd och tid. Du kan leverera en eller flera platser åtskilda av pipe-tecknet (|
), I form av ett place ID, en adress eller latitud/longitud koordinater:- Om du anger ett place ID måste du prefixa det med
place_id:
. Du kan bara ange ett plats-ID om begäran innehåller en API-nyckel eller ett Google Maps Platform Premium Plan client ID. Du kan hämta plats-ID från Geocoding API och platser API (inklusive plats Komplettera automatiskt). Om du till exempel använder place ID från Place Autocomplete, se Place Autocomplete och vägbeskrivning. Mer information om plats-ID finns i översikt över plats-ID. - Om du skickar en adress geocoderar tjänsten strängen och konverterar den till en latitud/longitudkoordinat för att beräkna avståndet. Denna koordinat kan skilja sig från den som returneras av GEOKODNINGS API, till exempel en byggnadsingång snarare än dess centrum.
origins=Bobcaygeon+ON|24+Sussex+Drive+Ottawa+ON
Obs: att använda plats-ID är att föredra framför att använda adresser eller latitud/longitudkoordinater. Att använda koordinater kommer alltid att resultera i att punkten knäpps till vägen närmast dessa koordinater – vilket kanske inte är en åtkomstpunkt till fastigheten, eller till och med en väg som snabbt eller säkert leder till destinationen. - Om du passerar latitud / longitud koordinater, de de kommer att knäppa till närmaste väg. Passerar en plats ID är att föredra. Om du skickar koordinater, se till att det inte finns något utrymme mellan latitud-och longitudvärdena.
origins=41.43206,-81.38992|-33.86748,151.20699
origins=place_id:ChIJ3S-JXmauEmsRUcIaWtf4MzE
- Plus koder måste formateras som en global kod eller en sammansatt kod. Format plus koder som visas här (plustecken är url-flydde till
%2B
och mellanslag är url-flydde till%20
):- global kod är en Riktnummer med 4 tecken och 6 tecken eller längre lokal kod (849VCWC8+R9 är
849VCWC8%2BR9
). - sammansatt kod är en 6 tecken eller längre lokal kod med en uttrycklig plats (CWC8+R9 Mountain View, CA, USA är
CWC8%2BR9%20Mountain%20View%20CA%20USA
).
- global kod är en Riktnummer med 4 tecken och 6 tecken eller längre lokal kod (849VCWC8+R9 är
- Alternativt kan du leverera en kodad uppsättning koordinater med den kodade Polylinalgoritmen. Detta är särskilt användbart om du har ett stort antal ursprungspunkter, eftersom webbadressen är betydligt kortare när du använder en kodad polylinje.
- kodade polyliner måste prefixeras med
enc:
och följt av ett kolon (:
).Till exempel:origins=enc:gfo}EtohhU:
- Du kan också inkludera flera kodade polyliner, åtskilda av rörtecknet (
|
). Exempelvis:origins=enc:wc~oAwquwMdlTxiKtqLyiK:|enc:c~vnAamswMvlTor@tjGi}L:|enc:udymA{~bxM:
- kodade polyliner måste prefixeras med
- Om du anger ett place ID måste du prefixa det med
-
destinations
— en eller flera platser att använda som slutpunkt för beräkning av reseavstånd och tid. Alternativen för parameterndestinations
är desamma som för parameternorigins
som beskrivs ovan. -
key
— programmets API-nyckel. Denna nyckel identifierar din ansökan för kvothantering. Lär dig hur du får en nyckel.Obs: Google Maps Platform Premium Plan-kunder kan använda antingen en API-nyckel eller ett giltigt klient-ID och digital signatur i dina Distansmatrisförfrågningar. Få mer information om autentiseringsparametrar för Premium plan-kunder.
i följande exempel används Koordinater för latitud / longitud för att ange destinationskoordinater:
i följande exempel används pluskoder för att ange destinationskoordinater:
i följande exempel visas samma begäran med en kodad polylinje:
valfria parametrar
-
mode
(Standardvärdet ärdriving
) — anger vilket transportsätt som ska användas vid beräkning av avstånd. Giltiga värden och andra förfrågningsuppgifter anges i avsnittet Reselägen i detta dokument. -
language
— språket för att returnera resultat.- se listan över språk som stöds. Google uppdaterar ofta de språk som stöds, så den här listan kanske inte är uttömmande.
- Om
language
inte tillhandahålls, försöker API: n att använda det språk som anges iAccept-Language
eller modersmålet för domänen från vilken begäran skickas. - API gör sitt bästa för att ge en gatuadress som är läsbar för både användaren och lokalbefolkningen. För att uppnå detta mål returnerar den gatuadresser på det lokala språket, transliterated till ett skript som kan läsas av användaren om det behövs, observera det föredragna språket. Alla andra adresser returneras på önskat språk. Adress komponenter returneras alla på samma språk, som väljs från den första komponenten.
- om ett namn inte är tillgängligt på det språk som föredras använder API: n den närmaste matchningen.
- det föredragna språket har ett litet inflytande på den uppsättning resultat som API väljer att returnera och i vilken ordning de returneras. Geocoder tolkar förkortningar olika beroende på språk, till exempel förkortningar för gatutyper, eller synonymer som kan vara giltiga på ett språk men inte på ett annat. Till exempel är utca och t Ubir synonymer för gatan på ungerska.
-
region
— regionkoden, specificerad som ett ccTLD-värde (landskod toppdomän) med två tecken. De flesta ccTLD-koder är identiska med ISO 3166-1-koder, med vissa undantag. Denna parameter påverkar bara, inte helt begränsa, resultat från geocoder. Om det finns mer relevanta resultat utanför den angivna regionen kan de inkluderas. -
avoid
— introducerar begränsningar för rutten. Giltiga värden anges i avsnittet begränsningar i detta dokument. Endast en begränsning kan anges. -
units
— anger det enhetssystem som ska användas vid uttryck av avstånd som text. Se avsnittet enhetssystem i detta dokument för mer information. -
arrival_time
— anger önskad ankomsttid för transitförfrågningar, i sekunder sedan midnatt den 1 januari 1970 UTC. Du kan ange antingendeparture_time
ellerarrival_time
, men inte båda. Observera attarrival_time
måste anges som ett heltal. -
departure_time
— önskad avgångstid. Du kan ange tiden som ett heltal i sekunder sedan midnatt den 1 januari 1970 UTC. Om ettdeparture_time
senare än 9999-12-31t23:59:59.9999999999 Z anges kommer API:et att falla tillbakadeparture_time
till 9999-12-31t23:59: 59.9999999999 Z. Alternativt kan du ange ett värde avnow
, som ställer in avgångstiden till den aktuella tiden (korrekt till närmaste sekund). Avgångstiden kan anges i två fall:- för förfrågningar där reseläget är transitering: Du kan valfritt ange en av
departure_time
ellerarrival_time
. Om ingen tid anges ärdeparture_time
som standard nu (det vill säga avgångstiden som standard den aktuella tiden). - för förfrågningar där reseläget kör: du kan ange
departure_time
för att få en rutt och reslängd (svarsfält:duration_in_traffic
) som tar hänsyn till trafikförhållandena. Det här alternativet är endast tillgängligt om begäran innehåller en giltig API-nyckel eller ett giltigt Google Maps Platform Premium Plan client ID och signatur.departure_time
måste ställas in på aktuell tid eller någon tid i framtiden. Det kan inte vara i det förflutna.Obs: Om avgångstiden inte anges är val av rutt och varaktighet baserat på vägnät och genomsnittliga tidsoberoende trafikförhållanden. Resultaten för en viss begäran kan variera över tid på grund av förändringar i vägnätet, uppdaterade genomsnittliga trafikförhållanden och tjänstens distribuerade karaktär. Resultaten kan också variera mellan nästan likvärdiga rutter när som helst eller frekvens.
Obs: Avståndsmatrisförfrågningar som anger
departure_time
närmode=driving
är begränsade till högst 100 element per begäran. Antalet ursprung gånger antalet destinationer definierar antalet element.
- för förfrågningar där reseläget är transitering: Du kan valfritt ange en av
-
traffic_model
(Standardvärdet ärbest_guess
) — anger de antaganden som ska användas vid beräkning av tid i trafiken. Den här inställningen påverkar värdet som returneras i fältetduration_in_traffic
I svaret, som innehåller den förutsagda tiden i trafiken baserat på historiska medelvärden. Parameterntraffic_model
får endast anges för förfrågningar där reseläget ärdriving
, och där begäran innehåller ettdeparture_time
, och endast om begäran innehåller en API-nyckel eller ett Google Maps Platform Premium Plan client ID. De tillgängliga värdena för denna parameter är:-
best_guess
(standard) indikerar att det returneradeduration_in_traffic
ska vara den bästa uppskattningen av restiden med tanke på vad som är känt om både historiska trafikförhållanden och levande trafik. Levande trafik blir viktigare ju närmaredeparture_time
är nu. -
pessimistic
indikerar att det returneradeduration_in_traffic
bör vara längre än den faktiska restiden på de flesta dagar, även om tillfälliga dagar med särskilt dåliga trafikförhållanden kan överstiga detta värde. -
optimistic
indikerar att det returneradeduration_in_traffic
bör vara kortare än den faktiska restiden på de flesta dagar, även om tillfälliga dagar med särskilt goda trafikförhållanden kan vara snabbare än detta värde.
-
-
transit_mode
— anger ett eller flera föredragna transportsätt. Denna parameter får endast anges för förfrågningar därmode
ärtransit
. Parametern stöder följande argument:-
bus
indikerar att den beräknade rutten föredrar att resa med buss. -
subway
indikerar att den beräknade rutten föredrar att resa med tunnelbana. -
train
indikerar att den beräknade rutten föredrar att resa med tåg. -
tram
indikerar att den beräknade rutten föredrar att resa med spårvagn och spårväg. -
rail
indikerar att den beräknade rutten föredrar att resa med tåg, spårvagn, spårväg och tunnelbana. Detta motsvarartransit_mode=train|tram|subway
.
-
-
transit_routing_preference
— anger inställningar för transitförfrågningar. Med den här parametern kan du bias de alternativ som returneras, snarare än att acceptera den standard bästa rutten som valts av API. Denna parameter får endast anges för förfrågningar därmode
ärtransit
. Parametern stöder följande argument:-
less_walking
indikerar att den beräknade vägen bör föredra begränsade mängder gång. -
fewer_transfers
indikerar att den beräknade rutten bör föredra ett begränsat antal överföringar.
-
reslägen
för beräkning av avstånd kan du ange transport mode
att använda. Som standard beräknas avstånd för körläge. Följande körlägen stöds:
-
driving
(standard) indikerar avståndsberäkning med vägnätet. -
walking
begär avståndsberäkning för promenader via gångvägar & trottoarer (om tillgängligt). -
bicycling
begär avståndsberäkning för cykling via cykelvägar & föredragna gator (där det finns). -
transit
begär avståndsberäkning via kollektivtrafikvägar (om tillgängligt). Detta värde får endast anges om begäran innehåller en API-nyckel eller ett klient-ID för Google Maps Platform Premium Plan. Om du ställer in läget påtransit
kan du välja att ange antingen ettdeparture_time
eller ettarrival_time
. Om ingen tid anges ärdeparture_time
som standard nu (det vill säga avgångstiden som standard den aktuella tiden). Du kan också valfritt inkludera etttransit_mode
och/eller etttransit_routing_preference
.
trafikinformation
trafikinformation används när alla följande gäller (dessa är de villkor som krävs för att ta emot fältetduration_in_traffic
I Avståndsmatrissvaret):
- parametern travel
mode
ärdriving
, eller är inte specificerat (driving
är standardläget för resor). - begäran innehåller en giltig
departure_time
parameter.departure_time
kan ställas in på aktuell tid eller någon tid i framtiden. Det kan inte vara i det förflutna.
Alternativt kan du inkludera parameterntraffic_model
I din begäran om att ange de antaganden som ska användas vid beräkning av tid i trafiken.
följande URL initierar en Distansmatrisförfrågan för köravstånd mellan Boston, MA eller Charlestown, MA och Lexington, MA och Concord, MA. Begäran innehåller en avgångstid som uppfyller alla krav för att returnera fältet duration_in_traffic
I Avståndsmatrissvaret.
begränsningar
avstånd kan beräknas som följer vissa begränsningar. Begränsningar anges med hjälp av parametern avoid
och ett argument till den parametern som anger begränsningen som ska undvikas. Följande begränsningar stöds:
avoid=tolls
avoid=highways
avoid=ferries
avoid=indoor
* Obs: tillägg av begränsningar utesluter inte rutter som inkluderar den begränsade funktionen; det föregriper resultatet till mer gynnsamma rutter.
enhetssystem
Avståndsmatrisresultat innehållertext
inomdistance
fält för att ange avståndet för den beräknade rutten. Enhetssystemet som ska användas kan specificeras:
-
units=metric
(standard) returnerar avstånd i kilometer och meter. -
units=imperial
returnerar avstånd i miles och fot.
* Obs! Denna enhetssysteminställning påverkar endast fälten text
som visas i distance
. Fälten distance
innehåller också values
som alltid uttrycks i meter.
Distansmatrissvar
svar på API-frågor för Distansmatris returneras i det format som indikeras av flaggan output
inom URL-förfrågans sökväg.
två exempel HTTP-förfrågningar visas nedan, begär avstånd och varaktighet från Vancouver, BC, Kanada och från Seattle, WA, USA, till San Francisco, CA, USA och Victoria, BC, Kanada.
denna begäran visar med hjälp av flaggan JSON output
:
denna begäran visar att använda XMLoutput
flagga:
denna begäran kommer att returnera fyra element – två ursprung gånger två destinationer:
Vancouver till San Francisco | Vancouver till Victoria |
Seattle till San Francisco | Seattle till Victoria |
resultat returneras i rader, varje rad innehåller ett ursprung parat med varje destination.
Du kan testa detta genom att ange webbadressen i din webbläsare (var noga med att ersätta YOUR_API_KEY
med din faktiska API-nyckel).
Välj flikarna nedan för att se sample JSON och XML svar.
resten av denna dokumentation kommer att använda JSON syntax.
Avståndsmatrissvarselement
Avståndsmatrissvar innehåller följande rotelement:
-
status
innehåller metadata på begäran. Se statuskoder nedan. -
origin_addresses
innehåller en rad adresser som returneras av API från din ursprungliga begäran. Dessa formateras av geocoder och lokaliseras enligtlanguage
– parametern som skickas med begäran. -
destination_addresses
innehåller en rad adresser som returneras av API från din ursprungliga begäran. Som medorigin_addresses
är dessa lokaliserade om det är lämpligt. -
rows
innehåller en matris medelements
, som i sin tur innehåller ettstatus
duration
ochdistance
element.
statuskoder
status
fält i svarsobjektet innehåller status för begäran och kan innehålla användbar felsökningsinformation. Distance Matrix API returnerar ett statusfält på toppnivå, med information om begäran i allmänhet, samt ett statusfält för varje elementfält, med information om den specifika parkopplingen mellan ursprung och destination.
toppnivåstatuskoder
-
OK
indikerar att svaret innehåller ett giltigtresult
. -
INVALID_REQUEST
indikerar att den angivna begäran var ogiltig. -
MAX_ELEMENTS_EXCEEDED
indikerar att produkten av ursprung och destinationer överskrider gränsen per fråga. -
MAX_DIMENSIONS_EXCEEDED
anger att antalet ursprung eller destinationer överskrider gränsen per fråga. -
OVER_DAILY_LIMIT
anger något av följande:- API-nyckeln saknas eller är ogiltig.
- fakturering har inte aktiverats på ditt konto.
- ett självpålagt användningslock har överskridits.
- den angivna betalningsmetoden är inte längre giltig (till exempel har ett kreditkort löpt ut).
se Vanliga frågor om kartor för att lära dig hur du åtgärdar detta.
-
OVER_QUERY_LIMIT
indikerar att tjänsten har fått för många förfrågningar från din ansökan inom den tillåtna tidsperioden. -
REQUEST_DENIED
indikerar att tjänsten nekade användning av Distansmatristjänsten av din applikation. -
UNKNOWN_ERROR
indikerar att en begäran om Avståndsmatris inte kunde behandlas på grund av ett serverfel. Begäran kan lyckas om du försöker igen.
statuskoder på Elementnivå
-
OK
indikerar att svaret innehåller ett giltigtresult
. -
NOT_FOUND
indikerar att ursprunget och/eller destinationen för denna parning inte kunde geokodas. -
ZERO_RESULTS
indikerar att ingen rutt kunde hittas mellan ursprung och destination. -
MAX_ROUTE_LENGTH_EXCEEDED
indikerar att den begärda rutten är för lång och kan inte behandlas.
felmeddelanden
När toppnivåstatuskoden är annan änOK
kan det finnas ett ytterligareerror_message
fält inom avståndsmatrisens svarobjekt. Detta fält innehållermer detaljerad information om orsakerna till den angivna statuskoden.
Obs: Detta fält är inte garanterat att alltid vara närvarande, och dess innehåll kan ändras.
rader
När Avståndsmatrisens API returnerar resultat placerar den dem i en JSON rows
array. Även om inga resultat returneras (till exempel när ursprung och/eller destinationer inte finns) returnerar det fortfarande en tom matris. XML-svar består av noll eller fler <row>
element.
rader beställs enligt värdena i parametern origin
för begäran. Varje rad motsvarar ett ursprung och varje element
inom den raden motsvarar en parning av ursprunget med ett destination
värde.
varjerow
array innehåller en eller fleraelement
poster, som i sin tur innehåller information om en enda ursprung-destination parning.
element
informationen om varje ursprung-destination parning returneras i enelement
post. Ett element
innehåller följande fält:
-
status
: se statuskoder för en lista över möjliga statuskoder. -
duration
: hur lång tid det tar att resa denna rutt, uttryckt i sekunder (fältetvalue
) och somtext
. Textrepresentationen är lokaliserad enligt fråganslanguage
parameter. -
duration_in_traffic
: hur lång tid det tar att resa denna rutt, baserat på nuvarande och historiska trafikförhållanden. Setraffic_model
begär parameter för de alternativ du kan använda för att begära att det returnerade värdet är optimistiskt, pessimistiskt eller en uppskattning av bästa gissning. Varaktigheten uttrycks i sekunder (fältetvalue
) och somtext
. Textrepresentationen är lokaliserad enligt fråganslanguage
parameter. Varaktigheten i trafiken returneras endast om alla följande är sanna:- begäran innehåller en
departure_time
parameter. - begäran innehåller en giltig API-nyckel eller ett giltigt Google Maps Platform Premium Plan client ID och signatur.
- trafikförhållandena är tillgängliga för den begärda rutten.
- parametern
mode
är inställd pådriving
.
- begäran innehåller en
-
distance
: det totala avståndet för denna rutt, uttryckt i meter (value
) och somtext
. Textvärdet använder enhetssystemet som anges med parameternunit
för den ursprungliga begäran eller ursprungsregionen. -
fare
: om närvarande innehåller den totala biljettpriset (det vill säga de totala biljettkostnaderna) på denna rutt. Denna fastighet returneras endast för transitförfrågningar och endast för transitleverantörer där biljettinformation är tillgänglig. Informationen innehåller:-
currency
: EN ISO 4217-valutakod som anger den valuta som beloppet uttrycks i. -
value
: det totala biljettpriset, i den valuta som anges ovan. -
text
: det totala biljettpriset, formaterat på det begärda språket.
-
nedan är ett exempel på enelement
innehåller biljettinformation:
sensorparametern
Google Maps API krävde tidigare att du inkluderarsensor
parameter för att ange om din applikation använde asensor för att bestämma användarens plats. Denna parameter är inte längrekrävs.