lds
This module contains functions and procedures that make use of location data services, such as geocoding, reverse geocoding, isolines and routing computation.
For manual installations of the CARTO Analytics Toolbox, after installing it for the first time, and before using any LDS function you need to call the SETUP procedure to configure the LDS and gateway functions. It also optionally sets default credentials.
Credentials
Your CARTO account has monthly quotas assigned for each LDS service that are used up by every call to the LDS functions and procedures in the Analytics Toolbox.
Accordingly, the use of these functions and procedures requires providing authorization credentials to prevent fraudulent usage. Two parameters are needed:
api_base_urlThe API base url is simply the address through which you can access all the services of your CARTO account, and it depends on the region or premises where your account is located. Usually it will be this one:https://gcp-us-east1.api.carto.com.api_access_tokenThis token is an API Access Token that is allowed to use the LDS API. You must keep this secret! Anyone that has access to this token can use up the LDS quota assigned to your account.
Both the API base url and your API access token can be accessed through the developers section of the CARTO user interface. The API base url is displayed inside this section while for the API access token you will have to create a new API access token allowing the LDS API.
For more information about CARTO for developers, please check our documentation for Developers.
If default credentials are provided to the SETUP procedure, you can pass NULL values for the credentials in the LDS functions, and the credentials configured during SETUP will be used.
GEOCODE_TABLE
GEOCODE_TABLE(api_base_url, api_access_token, input_table, address_column, geom_column, country, options)warning
This function consumes LDS quota. Each call consumes as many units of quota as the number of rows of your input table. Before running, we recommend checking the size of the data to be geocoded and your available quota using the GET_LDS_QUOTA_INFO function.
Description
Geocodes an input table by adding an user defined column geom_column with the geographic coordinates (latitude and longitude) of a given address column. This procedure also adds a carto_geocode_metadata column with additional information of the geocoding result in JSON format. It geocodes sequentially the table in chunks of 100.
api_base_url:STRING|NULLurl of the API where the customer account is stored. If default credentials have been configured withSETUPNULL can be passed to use them.api_access_token:STRING|NULLan API Access Token that is allowed to use the LDS API. If default credentials have been configured withSETUPNULL can be passed to use them.input_table:STRINGname of the table to be geocoded. Please make sure you have enough permissions to alter this table, as this procedure will add two columns to it to store the geocoding result.address_column:STRINGname of the column from the input table that contains the addresses to be geocoded.geom_column:STRING|NULLcolumn name for the geometry column. Defaults to'geom'. Set toNULLto use the default value.country:STRING|NULLname of the country in ISO 3166-1 alpha-2. Defaults to''. Set toNULLto use the default value.options:STRING|NULLcontaining a valid JSON with the different options. In addition to the options targeted at the geocoding service described below, a boolean optioncarto_force_geocode(false by default) can be used to force geocoding rows that already have a non-null value ingeom_column. Valid geocoding service options are described in the table below. If no options are indicated then 'default' values would be applied.ProviderOptionDescriptionAlllanguageA
STRINGthat specifies the language of the geocoding in RFC 4647 format.
If the input table already contains a geometry column with the name defined by geom_column, only those rows with NULL values will be geocoded.
Examples
CALL `carto-un`.carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', NULL, NULL, NULL);
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: geom, carto_geocode_metadata.CALL `carto-un-eu`.carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', NULL, NULL, NULL);
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: geom, carto_geocode_metadata.CALL carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', NULL, NULL, NULL);
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: geom, carto_geocode_metadata.CALL `carto-un`.carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', 'my_geom_column', NULL, NULL);
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: my_geom_column, carto_geocode_metadata.CALL `carto-un-eu`.carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', 'my_geom_column', NULL, NULL);
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: my_geom_column, carto_geocode_metadata.CALL carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', 'my_geom_column', NULL, NULL);
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: my_geom_column, carto_geocode_metadata.CALL `carto-un`.carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', 'my_geom_column', 'my_country', NULL);
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: my_geom_column, carto_geocode_metadata.CALL `carto-un-eu`.carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', 'my_geom_column', 'my_country', NULL);
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: my_geom_column, carto_geocode_metadata.CALL carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', 'my_geom_column', 'my_country', NULL);
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: my_geom_column, carto_geocode_metadata.CALL `carto-un`.carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', 'my_geom_column', 'my_country', '{"language":"en-US"}');
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: my_geom_column, carto_geocode_metadata.CALL `carto-un-eu`.carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', 'my_geom_column', 'my_country', '{"language":"en-US"}');
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: my_geom_column, carto_geocode_metadata.CALL carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', 'my_geom_column', 'my_country', '{"language":"en-US"}');
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: my_geom_column, carto_geocode_metadata.CALL `carto-un`.carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', 'my_geom_column', 'my_country', '{"carto_force_geocode":true}');
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: my_geom_column, carto_geocode_metadata.CALL `carto-un-eu`.carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', 'my_geom_column', 'my_country', '{"carto_force_geocode":true}');
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: my_geom_column, carto_geocode_metadata.CALL carto.GEOCODE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_address_column', 'my_geom_column', 'my_country', '{"carto_force_geocode":true}');
-- The table `my-project.my-schema.my-table` will be updated
-- adding the columns: my_geom_column, carto_geocode_metadata.GEOCODE_REVERSE_TABLE
GEOCODE_REVERSE_TABLE(api_base_url, api_access_token, input_table, geom_column, address_column, language, options)warning
This function consumes LDS quota. Each call consumes as many units of quota as the number of rows your input table has. Before running, we recommend checking the size of the data to be geocoded and your available quota using the GET_LDS_QUOTA_INFO function.
Description
Reverse-geocodes an input table by adding an user defined column address_column with the address coordinates corresponding to a given point location column. It geocodes sequentially the table in chunks of 100 rows.
api_base_url:STRING|NULLurl of the API where the customer account is stored. If default credentials have been configured withSETUPNULL can be passed to use them.api_access_token:STRING|NULLan API Access Token that is allowed to use the LDS API. If default credentials have been configured withSETUPNULL can be passed to use them.input_table:STRINGname of the table to be reverse-geocoded. Please make sure you have enough permissions to alter this table, as this procedure will add two columns to it to store the geocoding result.geom_column:STRING|NULLcolumn name for the geometry column that contains the points to be reverse-geocoded. Defaults to'geom'.address_column:STRINGname of the column where the computed addresses will be stored. It defaults to'address', and it is created on the input table if it doesn't exist.language:STRING|NULLlanguage in which results should be returned. Defaults to''. The effect and interpretation of this parameter depends on the LDS provider assigned to your account.options:STRING|NULLcontaining a valid JSON with the different options. No options are allowed currently, so this value will not be taken into account.
If the input table already contains a column with the name defined by address_column, only those rows with NULL values will be reverse-geocoded.
Examples
CALL `carto-un`.carto.GEOCODE_REVERSE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', NULL, NULL, NULL, NULL);
-- The table `my-project.my-schema.my-table` with a column `geom` will be updated
-- adding the column `address`.CALL `carto-un-eu`.carto.GEOCODE_REVERSE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', NULL, NULL, NULL, NULL);
-- The table `my-project.my-schema.my-table` with a column `geom` will be updated
-- adding the column `address`.CALL carto.GEOCODE_REVERSE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', NULL, NULL, NULL, NULL);
-- The table `my-project.my-schema.my-table` with a column `geom` will be updated
-- adding the column `address`.CALL `carto-un`.carto.GEOCODE_REVERSE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_geom_column', NULL, NULL, NULL);
-- The table `my-project.my-schema.my-table` with a column `my_geom_column` will be updated
-- adding the column `address`.CALL `carto-un-eu`.carto.GEOCODE_REVERSE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_geom_column', NULL, NULL, NULL);
-- The table `my-project.my-schema.my-table` with a column `my_geom_column` will be updated
-- adding the column `address`.CALL carto.GEOCODE_REVERSE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_geom_column', NULL, NULL, NULL);
-- The table `my-project.my-schema.my-table` with a column `my_geom_column` will be updated
-- adding the column `address`.CALL `carto-un`.carto.GEOCODE_REVERSE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_geom_column', 'my_address_column', NULL, NULL);
-- The table `my-project.my-schema.my-table` with a column `my_geom_column` will be updated
-- adding the column `my_address_column`.CALL `carto-un-eu`.carto.GEOCODE_REVERSE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_geom_column', 'my_address_column', NULL, NULL);
-- The table `my-project.my-schema.my-table` with a column `my_geom_column` will be updated
-- adding the column `my_address_column`.CALL carto.GEOCODE_REVERSE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_geom_column', 'my_address_column', NULL, NULL);
-- The table `my-project.my-schema.my-table` with a column `my_geom_column` will be updated
-- adding the column `my_address_column`.CALL `carto-un`.carto.GEOCODE_REVERSE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_geom_column', 'my_address_column', 'en-US', NULL);
-- The table `my-project.my-schema.my-table` with a column `my_geom_column` will be updated
-- adding the column `my_address_column`.
-- The addresses will be in the (US) english language, if supported by the account LDS provider.CALL `carto-un-eu`.carto.GEOCODE_REVERSE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_geom_column', 'my_address_column', 'en-US', NULL);
-- The table `my-project.my-schema.my-table` with a column `my_geom_column` will be updated
-- adding the column `my_address_column`.
-- The addresses will be in the (US) english language, if supported by the account LDS provider.CALL carto.GEOCODE_REVERSE_TABLE('my_api_base_url', 'my_api_access_token', 'my-project.my-schema.my-table', 'my_geom_column', 'my_address_column', 'en-US', NULL);
-- The table `my-project.my-schema.my-table` with a column `my_geom_column` will be updated
-- adding the column `my_address_column`.
-- The addresses will be in the (US) english language, if supported by the account LDS provider.CREATE_ISOLINES
CREATE_ISOLINES(api_base_url, api_access_token, input, output_table, geom_column, mode, range, range_type, options)warning
This function consumes LDS quota. Each call consumes as many units of quota as the number of rows your input table or query has. Before running, we recommend checking the size of data for which isolines will be created and your available quota using the GET_LDS_QUOTA_INFO function.
Description
Calculates the isolines (polygons) from given origins (points) in a table or query. It creates a new table with the columns of the input table or query except the geom_column plus the isolines in the column geom (if the input already contains a geom column, it will be overwritten). It calculates isolines sequentially in chunks of N rows, N being the optimal batch size for this datawarehouse and the specific LDS provider that you are using.
The output table will contain a column named carto_isoline_metadata with error information for each isoline result. Rows with errors will have a NULL geom.
Note that The term isoline is used here in a general way to refer to the areas that can be reached from a given origin point within the given travel time or distance (depending on the range_type parameter).
api_base_url:STRING|NULLurl of the API where the customer account is stored. If default credentials have been configured withSETUPNULL can be passed to use them.api_access_token:STRING|NULLan API Access Token that is allowed to use the LDS API. If default credentials have been configured withSETUPNULL can be passed to use them.input:STRINGname of the input table or query.output_table:STRINGname of the output table. It will raise an error if the table already exists.geom_column:STRINGcolumn name for the origin geometry column.mode:STRINGtype of transport. The supported modes depend on the provider:HERE: 'walk', 'car', 'truck', 'taxi', 'bus', 'private_bus'.TomTom: 'walk', 'car', 'bike', 'motorbike', 'truck', 'taxi', 'bus', 'van'.TravelTime: 'walk', 'car', 'bike', 'public_transport', 'coach', 'bus', 'train', 'ferry'.Mapbox: 'walk', 'car', 'bike'.
range_value:INT64range of the isoline in seconds (forrange_type'time') or meters (forrange_type'distance').range_type:STRINGtype of range. Supported: 'time' (for isochrones), 'distance' (for isodistances).options:STRING|NULLcontaining a valid JSON with the different options. Valid options are described in the table below. If no options are indicated then 'default' values would be applied.ProviderOptionDescriptionHEREarrival_timeA
STRINGthat specifies the time of arrival. If the value is set, a reverse isoline is calculated. If set to"any", then time-dependent effects will not be taken into account. It cannot be used in combination withdeparture_time. Supported:"any","now"and date-time as"<YYYY-MM-DD>T<hh:mm:ss>".HEREdeparture_timeDefault:
"any". ASTRINGthat specifies the time of departure. If set to"any", then time-dependent effects will not be taken into account. It cannot be used in combination witharrival_time. Supported:"any","now"and date-time as"<YYYY-MM-DD>T<hh:mm:ss>".HEREoptimize_forDefault:
"balanced". ASTRINGthat specifies how isoline calculation is optimized. Supported:"quality"(calculation of isoline focuses on quality, that is, the graph used for isoline calculation has higher granularity generating an isoline that is more precise),"performance"(calculation of isoline is performance-centric, quality of isoline is reduced to provide better performance) and"balanced"(calculation of isoline takes a balanced approach averaging between quality and performance).HERErouting_modeDefault:
"fast". ASTRINGthat specifies which optimization is applied during isoline calculation. Supported:"fast"(route calculation from start to destination optimized by travel time. In many cases, the route returned by the fast mode may not be the route with the fastest possible travel time. For example, the routing service may favor a route that remains on a highway, even if a faster travel time can be achieved by taking a detour or shortcut through an inconvenient side road) and"short"(route calculation from start to destination disregarding any speed information. In this mode, the distance of the route is minimized, while keeping the route sensible. This includes, for example, penalizing turns. Because of that, the resulting route will not necessarily be the one with minimal distance).TomTomdeparture_timeDefault:
"now". ASTRINGthat specifies the time of departure. Supported:"now"and date-time as"<YYYY-MM-DD>T<hh:mm:ss>".TomTomtrafficDefault:
false. ABOOLEANthat specifies if all available traffic information will be taken into consideration. Supported:trueandfalse.TravelTimelevel_of_detailA JSON string. In the most typical case, you will want to use a string in the form
{ scale_type: 'simple_numeric', level: -N }, withNbeing the detail level (-8 by default). Higher Ns (more negative levels) will simplify the polygons more but will reduce performance. There are other ways of setting the level of detail. Check the [https://docs.traveltime.com/api/reference/isochrones#arrival_searches-level_of_detail](TravelTime docs) for more info.TravelTimedeparture_timeDefault:
"now". ASTRINGthat specifies the time of departure. Supported:"now"and date-time as"<YYYY-MM-DD>T<hh:mm:ss>Z".
warning
Before running, we recommend checking your provider using the GET_LDS_QUOTA_INFO function. Notice that some of the parameters are provider dependant. Please contact your CARTO representative if you have questions regarding the service provider configured in your organization.
Examples
CALL `carto-un`.carto.CREATE_ISOLINES(
'my_api_base_url', 'my_api_access_token',
'my-project.my-schema.my-table',
'my-project.my-schema.my-output-table',
'my_geom_column',
'car', 300, 'time',
NULL
);
-- The table `my-project.my-schema.my-output-table` will be created
-- with the columns of the input table except `my_geom_column`.
-- Isolines will be added in the "geom" column.CALL `carto-un-eu`.carto.CREATE_ISOLINES(
'my_api_base_url', 'my_api_access_token',
'my-project.my-schema.my-table',
'my-project.my-schema.my-output-table',
'my_geom_column',
'car', 300, 'time',
NULL
);
-- The table `my-project.my-schema.my-output-table` will be created
-- with the columns of the input table except `my_geom_column`.
-- Isolines will be added in the "geom" column.CALL carto.CREATE_ISOLINES(
'my_api_base_url', 'my_api_access_token',
'my-project.my-schema.my-table',
'my-project.my-schema.my-output-table',
'my_geom_column',
'car', 300, 'time',
NULL
);
-- The table `my-project.my-schema.my-output-table` will be created
-- with the columns of the input table except `my_geom_column`.
-- Isolines will be added in the "geom" column.CALL `carto-un`.carto.CREATE_ISOLINES(
'my_api_base_url', 'my_api_access_token',
'my-project.my-schema.my-table',
'my-project.my-schema.my-output-table',
'my_geom_column',
'car', 1000, 'distance',
'{"polygons_filter": {"limit": 1}}'
);
-- The table `my-project.my-schema.my-output-table` will be created
-- with the columns of the input table except `my_geom_column`.
-- Isolines will be added in the "geom" column.CALL `carto-un-eu`.carto.CREATE_ISOLINES(
'my_api_base_url', 'my_api_access_token',
'my-project.my-schema.my-table',
'my-project.my-schema.my-output-table',
'my_geom_column',
'car', 1000, 'distance',
'{"polygons_filter": {"limit": 1}}'
);
-- The table `my-project.my-schema.my-output-table` will be created
-- with the columns of the input table except `my_geom_column`.
-- Isolines will be added in the "geom" column.CALL carto.CREATE_ISOLINES(
'my_api_base_url', 'my_api_access_token',
'my-project.my-schema.my-table',
'my-project.my-schema.my-output-table',
'my_geom_column',
'car', 1000, 'distance',
'{"polygons_filter": {"limit": 1}}'
);
-- The table `my-project.my-schema.my-output-table` will be created
-- with the columns of the input table except `my_geom_column`.
-- Isolines will be added in the "geom" column.CREATE_ROUTES
CREATE_ROUTES(api_base_url, api_access_token, input, output_table, geom_column, mode, options)warning
This function consumes LDS quota. Each call consumes as many units of quota as the number of rows your input query has. Before running, we recommend checking the size of the data used to create the routes and your available quota using the GET_LDS_QUOTA_INFO function.
Description
Calculates the routes (line strings) between given origins and destinations (points) in a query. It creates a new table with the columns of the input query with the resulting route in the user defined column geom_column (if the input already contains a column named geom_column, it will be overwritten) and a carto_routing_metadata column with the response of the service provider except for the route geometry. It calculates routes sequentially in chunks of 100 rows.
Note that routes are calculated using the external LDS provider assigned to your CARTO account. Currently TomTom and HERE are supported.
api_base_url:STRING|NULLurl of the API where the customer account is stored. If default credentials have been configured withSETUPNULL can be passed to use them.api_access_token:STRING|NULLan API Access Token that is allowed to use the LDS API. If default credentials have been configured withSETUPNULL can be passed to use them.input:STRINGname of the input query, which must have columns namedoriginanddestinationof typeGEOGRAPHYand containing points. If a column namedwaypointsis also present, it should contain a STRING with the coordinates of the desired intermediate points with the format"lon1,lat1:lon2,lat2...".output_table:STRINGname of the output table. It will raise an error if the table already exists.geom_column:STRINGcolumn name for the generated geography column that will contain the resulting routes.mode:STRINGtype of transport. The supported modes depend on the provider:TomTom: 'car', 'pedestrian', 'bicycle', 'motorcycle', 'truck', 'taxi', 'bus', 'van'.HERE: 'car', 'truck', 'pedestrian', 'bicycle', 'scooter', 'taxi', 'bus', 'privateBus'.
options:STRING|NULLcontaining a valid JSON with optional parameters. This is intended for advanced use: additional parameters can be passed directly to the Routing provider by placing them in this JSON string. To find out what your provider is, check theGET_LDS_QUOTA_INFOfunction. The following are some of the most common parameters for each provider:TomTom:avoid: Specifies something that the route calculation should try to avoid when determining the route. Possible values (several of them can be used at the same time):tollRoadsmotorwaysferriesunpavedRoadscarpoolsalreadyUsedRoadsAvoidsThisborderCrossingstunnelscarTrainslowEmissionZones
routeType: Specifies the type of optimization used when calculating routes. Possible values:fastest,shortest,shorteco,thrillingtraffic: Set to truetrueto consider all available traffic information during routing. Set tofalseotherwisedepartAt: The date and time of departure at the departure point. It should be specified in RFC 3339 format with an optional time zone offset.arriveAt: The date and time of arrival at the destination point. It should be specified in RFC 3339 format with an optional time zone offset.vehicleMaxspeed: Maximum speed of the vehicle in kilometers/hour.
HEREavoid: Elements or areas to avoid. Information about avoidance can be found heredepartureTime: The date and time of departure at the departure point. It should be specified in RFC 3339 format with an optional time zone offset.arrivalTime: The date and time of arrival at the destination point. It should be specified in RFC 3339 format with an optional time zone offset.language: The language to use. Supported language codes can be found here
For more advanced usage, check the documentation of your provider's routing API.
warning
Before running, we recommend checking your provider using the GET_LDS_QUOTA_INFO function. Notice that some of the parameters are provider dependant. Please contact your CARTO representative if you have questions regarding the service provider configured in your organization.
Examples
CALL `carto-un`.carto.CREATE_ROUTES(
'my_api_base_url', 'my_api_access_token',
'SELECT id, origin, destination FROM my-project.my-schema.my-table',
'my-project.my-schema.my-output-table',
'my_geom_column',
'car',
NULL
);
-- The table `my-project.my-schema.my-output-table` will be created
-- with the columns `id`, `origin`, `destination`, `geom` and `carto_routing_metadata`.CALL `carto-un-eu`.carto.CREATE_ROUTES(
'my_api_base_url', 'my_api_access_token',
'SELECT id, origin, destination FROM my-project.my-schema.my-table',
'my-project.my-schema.my-output-table',
'my_geom_column',
'car',
NULL
);
-- The table `my-project.my-schema.my-output-table` will be created
-- with the columns `id`, `origin`, `destination`, `geom` and `carto_routing_metadata`.CALL carto.CREATE_ROUTES(
'my_api_base_url', 'my_api_access_token',
'SELECT id, origin, destination FROM my-project.my-schema.my-table',
'my-project.my-schema.my-output-table',
'my_geom_column',
'car',
NULL
);
-- The table `my-project.my-schema.my-output-table` will be created
-- with the columns `id`, `origin`, `destination`, `geom` and `carto_routing_metadata`.Example with TomTom specific parameters:
CALL `carto-un`.carto.CREATE_ROUTES(
'my_api_base_url', 'my_api_access_token',
'SELECT id, origin, destination FROM my-project.my-schema.my-table',
'my-project.my-schema.my-output-table',
'my_geom_column',
'car',
'{"departAt":"now"}'
);
-- The table `my-project.my-schema.my-output-table` will be created
-- with the columns `id`, `origin`, `destination`, `geom` and `carto_routing_metadata`.CALL `carto-un-eu`.carto.CREATE_ROUTES(
'my_api_base_url', 'my_api_access_token',
'SELECT id, origin, destination FROM my-project.my-schema.my-table',
'my-project.my-schema.my-output-table',
'my_geom_column',
'car',
'{"departAt":"now"}'
);
-- The table `my-project.my-schema.my-output-table` will be created
-- with the columns `id`, `origin`, `destination`, `geom` and `carto_routing_metadata`.CALL carto.CREATE_ROUTES(
'my_api_base_url', 'my_api_access_token',
'SELECT id, origin, destination FROM my-project.my-schema.my-table',
'my-project.my-schema.my-output-table',
'my_geom_column',
'car',
'{"departAt":"now"}'
);
-- The table `my-project.my-schema.my-output-table` will be created
-- with the columns `id`, `origin`, `destination`, `geom` and `carto_routing_metadata`.GEOCODE
GEOCODE(api_base_url, api_access_token, address , country, options)warning
This function consumes LDS quota. Each call consumes one unit of quota. Before running, check the size of the data to be geocoded and make sure you store the result in a table to avoid misuse of the quota. To check the information about available and consumed quota use the function GET_LDS_QUOTA_INFO.
We recommend using this function only with an input of up to 10 records. In order to geocode larger sets of addresses, we strongly recommend using the GEOCODE_TABLE procedure. Likewise, in order to materialize the results in a table.
Description
Geocodes an address into a point with its geographic coordinates (latitude and longitude).
api_base_url:STRING|NULLurl of the API where the customer account is stored. If default credentials have been configured withSETUPNULL can be passed to use them.api_access_token:STRING|NULLan API Access Token that is allowed to use the LDS API. If default credentials have been configured withSETUPNULL can be passed to use them.address:STRINGinput address to geocode.country:STRING|NULLname of the country in ISO 3166-1 alpha-2. Defaults to''. Set toNULLto use the default value.options:STRING|NULLcontaining a valid JSON with the different options.ProviderOptionDescriptionAlllanguageA
STRINGthat specifies the language of the geocoding in RFC 4647 format.
Return type
GEOGRAPHY
Constraints
This function performs requests to the CARTO Location Data Services API. BigQuery makes parallel requests depending on the number of records you are processing, potentially hitting the limit of the number of requests per seconds allowed for your account. The payload size of these requests depends on the number of records and could cause a timeout in the external function, with the error message External function timeout. The limit is around 500 records but could vary with the provider. To avoid this error, please try geocoding smaller volumes of data or using the procedure GEOCODE_TABLE instead. This procedure manages concurrency and payload size to avoid exceeding this limit.
Examples
SELECT `carto-un`.carto.GEOCODE(NULL, NULL, 'Madrid', NULL, NULL);
-- POINT(109.590465335923 34.1733770650093)SELECT `carto-un-eu`.carto.GEOCODE(NULL, NULL, 'Madrid', NULL, NULL);
-- POINT(109.590465335923 34.1733770650093)SELECT carto.GEOCODE(NULL, NULL, 'Madrid', NULL, NULL);
-- POINT(109.590465335923 34.1733770650093)SELECT `carto-un`.carto.GEOCODE(NULL, NULL, 'Madrid', 'es', NULL);
-- POINT(51.405967078794 20.3365500266832)SELECT `carto-un-eu`.carto.GEOCODE(NULL, NULL, 'Madrid', 'es', NULL);
-- POINT(51.405967078794 20.3365500266832)SELECT carto.GEOCODE(NULL, NULL, 'Madrid', 'es', NULL);
-- POINT(51.405967078794 20.3365500266832)SELECT `carto-un`.carto.GEOCODE(NULL, NULL, 'Madrid', 'es', '{"language":"es-ES"}');
-- POINT(51.405967078794 20.3365500266832)SELECT `carto-un-eu`.carto.GEOCODE(NULL, NULL, 'Madrid', 'es', '{"language":"es-ES"}');
-- POINT(51.405967078794 20.3365500266832)SELECT carto.GEOCODE(NULL, NULL, 'Madrid', 'es', '{"language":"es-ES"}');
-- POINT(51.405967078794 20.3365500266832)SELECT `carto-un`.carto.GEOCODE('my_api_base_url', 'my_api_access_token', 'Madrid', 'es', '{"language":"es-ES"}');
-- POINT(51.405967078794 20.3365500266832)SELECT `carto-un-eu`.carto.GEOCODE('my_api_base_url', 'my_api_access_token', 'Madrid', 'es', '{"language":"es-ES"}');
-- POINT(51.405967078794 20.3365500266832)SELECT carto.GEOCODE('my_api_base_url', 'my_api_access_token', 'Madrid', 'es', '{"language":"es-ES"}');
-- POINT(51.405967078794 20.3365500266832)CREATE TABLE my_dataset.my_geocoded_table AS
SELECT address, `carto-un`.carto.GEOCODE(NULL, NULL, address, NULL, nULL) AS geom FROM my_table
-- Table my_geocoded_table successfully created.CREATE TABLE my_dataset.my_geocoded_table AS
SELECT address, `carto-un-eu`.carto.GEOCODE(NULL, NULL, address, NULL, nULL) AS geom FROM my_table
-- Table my_geocoded_table successfully created.CREATE TABLE my_dataset.my_geocoded_table AS
SELECT address, carto.GEOCODE(NULL, NULL, address, NULL, nULL) AS geom FROM my_table
-- Table my_geocoded_table successfully created.GEOCODE_REVERSE
GEOCODE_REVERSE(api_base_url, api_access_token, geom, language, options)warning
This function consumes LDS quota. Each call consumes one unit of quota. Before running, check the size of the data to be reverse geocoded and make sure you store the result in a table to avoid misuse of the quota. To check the information about available and consumed quota use the function [GET_LDS_QUOTA_INFO](lds.md#get_ lds_quota_info)
We recommend using this function only with an input of up to 10 records. In order to reverse-geocode larger sets of locations, we strongly recommend using the GEOCODE_REVERSE_TABLE procedure. Likewise, in order to materialize the results in a table.
Description
Performs a reverse geocoding of the point received as input.
api_base_url:STRING|NULLurl of the API where the customer account is stored. If default credentials have been configured withSETUPNULL can be passed to use them.api_access_token:STRING|NULLan API Access Token that is allowed to use the LDS API. If default credentials have been configured withSETUPNULL can be passed to use them.geom:GEOGRAPHYinput point for which to obtain the address.language:STRING|NULLlanguage in which results should be returned. Defaults to''. The effect and interpretation of this parameter depends on the LDS provider assigned to your account.options:STRING|NULLcontaining a valid JSON with the different options. No options are allowed currently, so this value will not be taken into account.
Return type
STRING
Constraints
This function performs requests to the CARTO Location Data Services API. BigQuery makes parallel requests depending on the number of records you are processing, potentially hitting the limit of the number of requests per seconds allowed for your account. The payload size of these requests depends on the number of records and could cause a timeout in the external function, with the error message External function timeout. The limit is around 500 records but could vary with the provider. To avoid this error, please try processing smaller volumes of data.
Examples
SELECT `carto-un`.carto.GEOCODE_REVERSE(NULL, NULL, ST_GEOGPOINT(-74.0060, 40.7128), NULL, NULL);
-- 254 Broadway, New York, NY 10007, USASELECT `carto-un-eu`.carto.GEOCODE_REVERSE(NULL, NULL, ST_GEOGPOINT(-74.0060, 40.7128), NULL, NULL);
-- 254 Broadway, New York, NY 10007, USASELECT carto.GEOCODE_REVERSE(NULL, NULL, ST_GEOGPOINT(-74.0060, 40.7128), NULL, NULL);
-- 254 Broadway, New York, NY 10007, USASELECT `carto-un`.carto.GEOCODE_REVERSE(NULL, NULL, ST_GEOGPOINT(-74.0060, 40.7128), 'en-US', NULL);
-- 254 Broadway, New York, NY 10007, USASELECT `carto-un-eu`.carto.GEOCODE_REVERSE(NULL, NULL, ST_GEOGPOINT(-74.0060, 40.7128), 'en-US', NULL);
-- 254 Broadway, New York, NY 10007, USASELECT carto.GEOCODE_REVERSE(NULL, NULL, ST_GEOGPOINT(-74.0060, 40.7128), 'en-US', NULL);
-- 254 Broadway, New York, NY 10007, USASELECT `carto-un`.carto.GEOCODE_REVERSE('my_api_base_url', 'my_api_access_token', ST_GEOGPOINT(-74.0060, 40.7128), 'en-US', '{}');
-- 254 Broadway, New York, NY 10007, USASELECT `carto-un-eu`.carto.GEOCODE_REVERSE('my_api_base_url', 'my_api_access_token', ST_GEOGPOINT(-74.0060, 40.7128), 'en-US', '{}');
-- 254 Broadway, New York, NY 10007, USASELECT carto.GEOCODE_REVERSE('my_api_base_url', 'my_api_access_token', ST_GEOGPOINT(-74.0060, 40.7128), 'en-US', '{}');
-- 254 Broadway, New York, NY 10007, USAISOLINE
ISOLINE(api_base_url, api_access_token, origin, mode, range_value, range_type, option)warning
This function consumes LDS quota. Each call consumes one unit quota. Before running, check the size of the data and make sure you store the result in a table to avoid misuse of the quota. To check the information about available and consumed quota use the function GET_LDS_QUOTA_INFO.
We recommend using this function only with an input of up to 10 records. In order to calculate isolines for larger sets of locations, we strongly recommend using the CREATE_ISOLINES procedure. Likewise, in order to materialize the results in a table.
Description
Calculates the isoline polygon from a given point.
api_base_url:STRING|NULLurl of the API where the customer account is stored. If default credentials have been configured withSETUPNULL can be passed to use them.api_access_token:STRING|NULLan API Access Token that is allowed to use the LDS API. If default credentials have been configured withSETUPNULL can be passed to use them.origin:GEOGRAPHYorigin point of the isoline.mode:STRINGtype of transport. The supported modes depend on the provider:HERE: 'walk', 'car', 'truck', 'taxi', 'bus', 'private_bus'.TomTom: 'walk', 'car', 'bike', 'motorbike', 'truck', 'taxi', 'bus', 'van'.TravelTime: 'walk', 'car', 'bike', 'public_transport', 'coach', 'bus', 'train', 'ferry'.Mapbox: 'walk', 'car', 'bike'.
range_value:INTrange of the isoline in seconds (forrange_type'time') or meters (forrange_type'distance').range_type:STRINGtype of range. Supported: 'time' (for isochrones), 'distance' (for isodistances).optionsSTRING|NULLcontaining a valid JSON with the different options. Valid options are described in the table below. If no options are indicated then 'default' values would be applied.ProviderOptionDescriptionHEREarrival_timeA
STRINGthat specifies the time of arrival. If the value is set, a reverse isoline is calculated. If set to"any", then time-dependent effects will not be taken into account. It cannot be used in combination withdeparture_time. Supported:"any","now"and date-time as"<YYYY-MM-DD>T<hh:mm:ss>".HEREdeparture_timeDefault:
"now". ASTRINGthat specifies the time of departure. If set to"any", then time-dependent effects will not be taken into account. It cannot be used in combination witharrival_time. Supported:"any","now"and date-time as"<YYYY-MM-DD>T<hh:mm:ss>".HEREoptimize_forDefault:
"balanced". ASTRINGthat specifies how isoline calculation is optimized. Supported:"quality"(calculation of isoline focuses on quality, that is, the graph used for isoline calculation has higher granularity generating an isoline that is more precise),"performance"(calculation of isoline is performance-centric, quality of isoline is reduced to provide better performance) and"balanced"(calculation of isoline takes a balanced approach averaging between quality and performance).HERErouting_modeDefault:
"fast". ASTRINGthat specifies which optimization is applied during isoline calculation. Supported:"fast"(route calculation from start to destination optimized by travel time. In many cases, the route returned by the fast mode may not be the route with the fastest possible travel time. For example, the routing service may favor a route that remains on a highway, even if a faster travel time can be achieved by taking a detour or shortcut through an inconvenient side road) and"short"(route calculation from start to destination disregarding any speed information. In this mode, the distance of the route is minimized, while keeping the route sensible. This includes, for example, penalizing turns. Because of that, the resulting route will not necessarily be the one with minimal distance).TomTomdeparture_timeDefault:
"now". ASTRINGthat specifies the time of departure. If set to"any", then time-dependent effects will not be taken into account. Supported:"any","now"and date-time as"<YYYY-MM-DD>T<hh:mm:ss>".TomTomtrafficDefault:
true. ABOOLEANthat specifies if all available traffic information will be taken into consideration. Supported:trueandfalse.TravelTimelevel_of_detailA JSON string. In the most typical case, you will want to use a string in the form
{ scale_type: 'simple_numeric', level: -N }, withNbeing the detail level (-8 by default). Higher Ns (more negative levels) will simplify the polygons more but will reduce performance. There are other ways of setting the level of detail. Check the [https://docs.traveltime.com/api/reference/isochrones#arrival_searches-level_of_detail](TravelTime docs) for more info.TravelTimedeparture_timeDefault:
"now". ASTRINGthat specifies the time of departure. Supported:"now"and date-time as"<YYYY-MM-DD>T<hh:mm:ss>Z".
warning
Before running, we recommend checking your provider using the GET_LDS_QUOTA_INFO function. Notice that some of the parameters are provider dependant. Please contact your CARTO representative if you have questions regarding the service provider configured in your organization.
Return type
GEOGRAPHY
Constraints
This function performs requests to the CARTO Location Data Services API. Bigquery makes parallel requests depending on the number of records you are processing, potentially hitting the limit of the number of requests per seconds allowed for your account. The payload size of these requests depends on the number of records and could cause a timeout in the external function, with the error message External function timeout. The limit is around 500 records but could vary with the provider. To avoid this error, please try processing smaller volumes of data.
Examples
SELECT `carto-un`.carto.ISOLINE(NULL, NULL, ST_GEOGPOINT(-3, 40), 'car', 300, 'time');
-- POLYGON ((-3.0081322 40.00005, -3.0081322 40.0006, -3.007061 40.001423, -3.0042043 40.001423, ...SELECT `carto-un-eu`.carto.ISOLINE(NULL, NULL, ST_GEOGPOINT(-3, 40), 'car', 300, 'time');
-- POLYGON ((-3.0081322 40.00005, -3.0081322 40.0006, -3.007061 40.001423, -3.0042043 40.001423, ...SELECT carto.ISOLINE(NULL, NULL, ST_GEOGPOINT(-3, 40), 'car', 300, 'time');
-- POLYGON ((-3.0081322 40.00005, -3.0081322 40.0006, -3.007061 40.001423, -3.0042043 40.001423, ...SELECT `carto-un`.carto.ISOLINE(NULL, NULL, ST_GEOGPOINT(-3, 40), 'car', 1000, 'distance');
-- POLYGON ((-3.0960834 39.984512, -3.094504 39.984512, -3.092925 39.983295, -3.0913458 39.983295, ...SELECT `carto-un-eu`.carto.ISOLINE(NULL, NULL, ST_GEOGPOINT(-3, 40), 'car', 1000, 'distance');
-- POLYGON ((-3.0960834 39.984512, -3.094504 39.984512, -3.092925 39.983295, -3.0913458 39.983295, ...SELECT carto.ISOLINE(NULL, NULL, ST_GEOGPOINT(-3, 40), 'car', 1000, 'distance');
-- POLYGON ((-3.0960834 39.984512, -3.094504 39.984512, -3.092925 39.983295, -3.0913458 39.983295, ...SELECT `carto-un`.carto.ISOLINE('my_api_base_url', 'my_api_access_token', ST_GEOGPOINT(-3, 40), 'car', 300, 'time', '{"departure_time":"any"}');
-- POLYGON ((-3.0081322 40.00005, -3.0081322 40.0006, -3.007061 40.001423, -3.0042043 40.001423, ...SELECT `carto-un-eu`.carto.ISOLINE('my_api_base_url', 'my_api_access_token', ST_GEOGPOINT(-3, 40), 'car', 300, 'time', '{"departure_time":"any"}');
-- POLYGON ((-3.0081322 40.00005, -3.0081322 40.0006, -3.007061 40.001423, -3.0042043 40.001423, ...SELECT carto.ISOLINE('my_api_base_url', 'my_api_access_token', ST_GEOGPOINT(-3, 40), 'car', 300, 'time', '{"departure_time":"any"}');
-- POLYGON ((-3.0081322 40.00005, -3.0081322 40.0006, -3.007061 40.001423, -3.0042043 40.001423, ...GET_LDS_QUOTA_INFO
GET_LDS_QUOTA_INFO(api_base_url, api_access_token)Description
Returns statistics about the LDS quota. LDS quota is an annual quota that defines how much geocoding and isolines you can compute. Each geocoded row or computed isolines counts as one LDS quota unit. The single element in the result of GET_LDS_QUOTA_INFO will show your LDS quota for the current annual period (annual_quota), how much you’ve spent (used_quota), and which LDS providers are in use.
api_base_url:STRING|NULLurl of the API where the customer account is stored. If default credentials have been configured withSETUPNULL can be passed to use them.api_access_token:STRING|NULLan API Access Token that is allowed to use the LDS API. If default credentials have been configured withSETUPNULL can be passed to use them.
Return type
STRING
Example
SELECT `carto-un`.carto.GET_LDS_QUOTA_INFO('my_api_base_url', 'my_api_access_token');
-- [
-- {
-- "used_quota": 10,
-- "annual_quota": 100000,
-- "providers": {
-- "geocoding": "tomtom",
-- "isolines": "here",
-- "routing":"tomtom"
-- }
-- }
-- ]SELECT `carto-un-eu`.carto.GET_LDS_QUOTA_INFO('my_api_base_url', 'my_api_access_token');
-- [
-- {
-- "used_quota": 10,
-- "annual_quota": 100000,
-- "providers": {
-- "geocoding": "tomtom",
-- "isolines": "here",
-- "routing":"tomtom"
-- }
-- }
-- ]SELECT carto.GET_LDS_QUOTA_INFO('my_api_base_url', 'my_api_access_token');
-- [
-- {
-- "used_quota": 10,
-- "annual_quota": 100000,
-- "providers": {
-- "geocoding": "tomtom",
-- "isolines": "here",
-- "routing":"tomtom"
-- }
-- }
-- ]CREATE_ROUTING_MATRIX
CREATE_ROUTING_MATRIX(api_base_url, api_access_token, origins_table, origins_geom_column, destinations_table, destinations_geom_column, output_table, mode, options)warning
This function consumes LDS quota. Each call consumes as many units of quota as the number of rows of the origins table multiplied by the rows of destinations table. Before running, we recommend checking the size of the data used to create the routes and your available quota using the GET_LDS_QUOTA_INFO function.
Description
Calculates the routes (line strings) between given origins and destinations (points) in two table. It creates a new table with the cross join of the origin and destination geom columns adding the distance or time between the different routes. A carto_routing_matrix_metadata column will also be added containing pottential errors thrown by the service provider for particular origin-destination combinations.
Note that routes are calculated using the external LDS provider assigned to your CARTO account. Currently TomTom and TravelTime are supported.
api_base_url:STRING|NULLurl of the API where the customer account is stored. If default credentials have been configured withSETUPNULL can be passed to use them.api_access_token:STRING|NULLan API Access Token that is allowed to use the LDS API. If default credentials have been configured withSETUPNULL can be passed to use them.origins_table:STRINGname of the origins input table.origins_geom_column:STRINGcolumn name for the origin geometry column.destinations_table:STRINGname of the destinations input table.destinations_geom_column:STRINGcolumn name for the destination geometry column.output_table:STRINGname of the output table. It will raise an error if the table already exists.geom_column:STRINGcolumn name for the generated geography column that will contain the resulting routes.mode:STRINGtype of transport. The supported modes depend on the provider:TomTom: 'car', 'truck', 'pedestrian'.TravelTime: 'cycling', 'driving', 'driving+train', 'driving+public_transport', 'public_transport', 'walking', 'coach', 'bus', 'train', 'ferry', 'driving+ferry', 'cycling+ferry', 'cycling+public_transport'.
options:STRING|NULLcontaining a valid JSON with optional parameters. This is intended for advanced use: additional parameters can be passed directly to the Routing provider by placing them in this JSON string. To find out what your provider is, check theGET_LDS_QUOTA_INFOfunction. The following are some of the most common parameters for each provider:ProviderOptionDescriptionTomTomavoidDefault:
[]. AnARRAYthat specifies something that the route calculation should try to avoid when determining the route. Supported:["tollRoads"],["unpavedRoads"].TomTomdepartAtDefault:
"any". ASTRINGthat specifies the time of departure. Supported:"now","any"and date-time as"<YYYY-MM-DD>T<hh:mm:ss>".TomTomrouteTypeDefault:
"fastest". ASTRINGthat specifies the type of optimization used when calculating routes. Supported:"fastest","shortest".TomTomtrafficDefault:
historical. ASTRINGthat decides how traffic is considered for computing routes. Supported:historicalandlive.livemay not be used in conjunction withdepartAt=any.TomTomvehicleMaxSpeedDefault:
0. ANUMBERthat specifies the maximum speed of the vehicle in kilometers/hour. Supported: a value in the range [0, 250]. A value of0means that an appropriate value for the vehicle will be determined and applied during route planning.TravelTimedeparture_timeDefault:
"now". ASTRINGthat specifies the time of departure. Supported:"now"and date-time as"<YYYY-MM-DD>T<hh:mm:ss>Z".TravelTimetravel_timeDefault:
14400(4 hours). ANUMBERthat specifies the maximum travel time in seconds. Supported: a value in the range [0, 14400].For more advanced usage, check the documentation of your provider's matrix routing API.
The following are options provided by CARTO in order to adjust the procedure performance:
OptionDescriptioncarto_origins_batch_sizeDefault:
TomTom: 100,TravelTime: 1. Max:TomTom: 10000,TravelTime: 10. ANUMBERthat specifies the number of origins rows to process in each batch. Increasing this value in the case of Traveltime can cause some origins-destinations combinations to be skipped when the origin is not found.carto_destinations_batch_sizeDefault:
TomTom: 100,TravelTime: 2000. Max:TomTom: 10000,TravelTime: 2000. ANUMBERthat specifies the number of destinations rows to process in each batch.In the case of
TomTomthe next requirements must be met:If
departAt=nowordepartAT=dateTimethen:The size of the matrix should not be larger than 2500.
The number of origins should not be larger than 1000.
The number of destinations should not be larger than 1000.
The bounding box should not be larger than 400km X 400km. Example: 2X1000, 5X500, 100X25, etc.
If
departAt=anythen:The size of the matrix can be as large as 100M.
The number of origins should not be larger than 10000.
The number of destinations should not be larger than 10000.
warning
We recommend the product of carto_origins_batch_size x carto_destinations_batch_size to be lower than 10000 to ensure that the batches sizes is small enough to be processed.
warning
Before running, we recommend checking your provider using the GET_LDS_QUOTA_INFO function. Notice that some of the parameters are provider dependant. Please contact your CARTO representative if you have questions regarding the service provider configured in your organization.
Return type
The results are stored in the table named <output_table>, which contains the following columns:
origin_geom:STRINGthe origin geometry.destination_geom:STRINGthe destination geometry.route_distance:INTthe distance of the route in meters.route_duration:INTthe duration of the route in seconds.carto_routing_matrix_metadata:STRINGpossible errors thrown by the service provider for particular origin-destination combinations.
When generating the output table origin-destination combinations, duplicated or null geometries will not be processed.
Examples
CALL `carto-un`.carto.CREATE_ROUTING_MATRIX(
'my_api_base_url', 'my_api_access_token',
'my-project.my-dataset.my-origins-table',
'my_origins_geom_column',
'my-project.my-dataset.my-destinations-table',
'my_destinations_geom_column',
'my-project.my-dataset.my-output-table',
'car',
NULL
);
-- The table `my-project.my-dataset.my-output-table` will be created
-- with the columns from both input tables, `route_distance`, `route_duration` and `carto_routing_matrix_metadata`.CALL `carto-un-eu`.carto.CREATE_ROUTING_MATRIX(
'my_api_base_url', 'my_api_access_token',
'my-project.my-dataset.my-origins-table',
'my_origins_geom_column',
'my-project.my-dataset.my-destinations-table',
'my_destinations_geom_column',
'my-project.my-dataset.my-output-table',
'car',
NULL
);
-- The table `my-project.my-dataset.my-output-table` will be created
-- with the columns from both input tables, `route_distance`, `route_duration` and `carto_routing_matrix_metadata`.CALL carto.CREATE_ROUTING_MATRIX(
'my_api_base_url', 'my_api_access_token',
'my-project.my-dataset.my-origins-table',
'my_origins_geom_column',
'my-project.my-dataset.my-destinations-table',
'my_destinations_geom_column',
'my-project.my-dataset.my-output-table',
'car',
NULL
);
-- The table `my-project.my-dataset.my-output-table` will be created
-- with the columns from both input tables, `route_distance`, `route_duration` and `carto_routing_matrix_metadata`.Example with TomTom specific parameters:
CALL `carto-un`.carto.CREATE_ROUTING_MATRIX(
'my_api_base_url', 'my_api_access_token',
'my-project.my-dataset.my-origins-table',
'my_origins_geom_column',
'my-project.my-dataset.my-destinations-table',
'my_destinations_geom_column',
'my-project.my-dataset.my-output-table',
'car',
'{"departAt":"now"}'
);
-- The table `my-project.my-dataset.my-output-table` will be created
-- with the columns from both input tables, `route_distance`, `route_duration` and `carto_routing_matrix_metadata`.CALL `carto-un-eu`.carto.CREATE_ROUTING_MATRIX(
'my_api_base_url', 'my_api_access_token',
'my-project.my-dataset.my-origins-table',
'my_origins_geom_column',
'my-project.my-dataset.my-destinations-table',
'my_destinations_geom_column',
'my-project.my-dataset.my-output-table',
'car',
'{"departAt":"now"}'
);
-- The table `my-project.my-dataset.my-output-table` will be created
-- with the columns from both input tables, `route_distance`, `route_duration` and `carto_routing_matrix_metadata`.CALL carto.CREATE_ROUTING_MATRIX(
'my_api_base_url', 'my_api_access_token',
'my-project.my-dataset.my-origins-table',
'my_origins_geom_column',
'my-project.my-dataset.my-destinations-table',
'my_destinations_geom_column',
'my-project.my-dataset.my-output-table',
'car',
'{"departAt":"now"}'
);
-- The table `my-project.my-dataset.my-output-table` will be created
-- with the columns from both input tables, `route_distance`, `route_duration` and `carto_routing_matrix_metadata`.Example with batch sizes:
CALL `carto-un`.carto.CREATE_ROUTING_MATRIX(
'my_api_base_url', 'my_api_access_token',
'my-project.my-dataset.my-origins-table',
'my_origins_geom_column',
'my-project.my-dataset.my-destinations-table',
'my_destinations_geom_column',
'my-project.my-dataset.my-output-table',
'car',
'{"carto_origins_batch_size": 10, "carto_destinations_batch_size": 1000}'
);
-- The table `my-project.my-dataset.my-output-table` will be created
-- with the columns from both input tables, `route_distance`, `route_duration` and `carto_routing_matrix_metadata`.CALL `carto-un-eu`.carto.CREATE_ROUTING_MATRIX(
'my_api_base_url', 'my_api_access_token',
'my-project.my-dataset.my-origins-table',
'my_origins_geom_column',
'my-project.my-dataset.my-destinations-table',
'my_destinations_geom_column',
'my-project.my-dataset.my-output-table',
'car',
'{"carto_origins_batch_size": 10, "carto_destinations_batch_size": 1000}'
);
-- The table `my-project.my-dataset.my-output-table` will be created
-- with the columns from both input tables, `route_distance`, `route_duration` and `carto_routing_matrix_metadata`.CALL carto.CREATE_ROUTING_MATRIX(
'my_api_base_url', 'my_api_access_token',
'my-project.my-dataset.my-origins-table',
'my_origins_geom_column',
'my-project.my-dataset.my-destinations-table',
'my_destinations_geom_column',
'my-project.my-dataset.my-output-table',
'car',
'{"carto_origins_batch_size": 10, "carto_destinations_batch_size": 1000}'
);
-- The table `my-project.my-dataset.my-output-table` will be created
-- with the columns from both input tables, `route_distance`, `route_duration` and `carto_routing_matrix_metadata`.
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 960401.
Last updated
Was this helpful?
