Endpoint:
https://{USER}.carto.com/api/v1/map/named/routingtest/750/401.png?config={"postcode1":"'{postcode_1}'","postcode2":"'{postcode_2}'"}
Real Example
WITH point1 AS ( | |
SELECT cdb_geocode_postalcode_point(<%= postcode1 %>, 'USA') as geo | |
), | |
point2 AS ( | |
SELECT cdb_geocode_postalcode_point(<%= postcode2 %>, 'USA') as geo | |
), | |
route AS ( | |
SELECT | |
r.shape as geo, | |
r.length | |
FROM | |
point1, | |
point2, | |
cdb_route_point_to_point(point1.geo, point2.geo, 'car') r | |
) | |
SELECT | |
3 as cartodb_id, | |
ST_Transform(geo,3857) as the_geom_webmercator, | |
to_char(length::real, '999,999 km') as label | |
FROM route | |
UNION ALL | |
SELECT | |
1 as cartodb_id, | |
ST_Transform(geo,3857) as the_geom_webmercator, | |
'From ' || <%= postcode1 %> as label | |
FROM point1 | |
UNION ALL | |
SELECT | |
2 as cartodb_id, | |
ST_Transform(geo,3857) as the_geom_webmercator, | |
'To ' || <%= postcode2 %> as label | |
FROM point2 |
#layer['mapnik::geometry_type'=1] { | |
marker-width: 15; | |
marker-fill: #FFB927; | |
marker-fill-opacity: 0.9; | |
marker-line-color: #ffda8d; | |
marker-line-width: 1.5; | |
marker-line-opacity: 1; | |
marker-placement: point; | |
marker-type: ellipse; | |
marker-allow-overlap: true; | |
} | |
#layer['mapnik::geometry_type'=2] { | |
line-color: #3EBCAE; | |
line-width: 1.5; | |
line-opacity: 1; | |
} | |
#layer::labels ['mapnik::geometry_type'=1]{ | |
text-name: [label]; | |
text-face-name: 'DejaVu Sans Book'; | |
text-size: 10; | |
text-fill: #6F808D; | |
text-label-position-tolerance: 0; | |
text-halo-radius: 1; | |
text-halo-fill: #FFFFFF; | |
text-dy: -10; | |
text-allow-overlap: true; | |
text-placement: point; | |
text-placement-type: dummy; | |
} |
{ | |
"auth": { | |
"method": "open" | |
}, | |
"version": "0.0.1", | |
"name": "routingtest", | |
"placeholders": { | |
"postcode1": { | |
"type": "sql_ident", | |
"default": "28001" | |
}, | |
"postcode2": { | |
"type": "sql_ident", | |
"default": "28002" | |
} | |
}, | |
"layergroup": { | |
"version": "1.0.1", | |
"layers": [ | |
{ | |
"type": "http", | |
"options": { | |
"urlTemplate": "http://{s}.basemaps.cartocdn.com/light_nolabels/{z}/{x}/{y}.png", | |
"subdomains": "abcd" | |
} | |
}, | |
{ | |
"type": "cartodb", | |
"options": { | |
"sql": "WITH point1 as (SELECT cdb_geocode_postalcode_point(<%= postcode1 %>, 'USA') as geo ), point2 as (SELECT cdb_geocode_postalcode_point(<%= postcode2 %>, 'USA') as geo ), route AS (SELECT r.shape as geo, r.length FROM point1, point2, cdb_route_point_to_point(point1.geo, point2.geo, 'car') r ) SELECT 3 as cartodb_id, ST_Transform(geo,3857) as the_geom_webmercator, to_char(length::real, '999,999 km') as label FROM route UNION ALL SELECT 1 as cartodb_id, ST_Transform(geo,3857) as the_geom_webmercator, 'From ' || <%= postcode1 %> as label FROM point1 UNION ALL SELECT 2 as cartodb_id, ST_Transform(geo,3857) as the_geom_webmercator, 'To ' || <%= postcode2 %> as label FROM point2 ", | |
"layer_name": "route", | |
"cartocss": "#layer['mapnik::geometry_type'=1] {marker-width: 15; marker-fill: #FFB927; marker-fill-opacity: 0.9; marker-line-color: #ffda8d; marker-line-width: 1.5; marker-line-opacity: 1; marker-placement: point; marker-type: ellipse; marker-allow-overlap: true; } #layer['mapnik::geometry_type'=2] {line-width: 9; line-color: #3EBCAE; line-opacity: .7; } #layer::labels {text-name: [label]; text-face-name: 'DejaVu Sans Book'; text-size: 15; text-fill: #343A40; text-label-position-tolerance: 0; text-halo-radius: 1; text-halo-fill: #FFFFFF; text-dy: -10; text-allow-overlap: true; text-placement: point; text-placement-type: dummy; } ", | |
"cartocss_version": "2.1.1", | |
"interactivity": [ | |
"cartodb_id", | |
"name" | |
], | |
"table_name": "route", | |
"attributes": {} | |
} | |
} | |
] | |
}, | |
"view": { | |
"zoom": 4, | |
"center": { | |
"lng": -98.8, | |
"lat": 38.65 | |
}, | |
"bounds": { | |
"west" : -129.7, | |
"south": 24.5, | |
"east" : -67.9, | |
"north": 50.5 | |
} | |
} | |
} |
curl -X POST \ | |
-H 'Content-Type: application/json' \ | |
-d @template.json \ | |
'https://{USER}.carto.com/api/v1/map/named?api_key=/{API_KEY}' |
curl -X POST \ | |
-H 'Content-Type: application/json' \ | |
-d @params.json \ | |
'https://{USER}.carto.com/api/v1/map/named/routingtest' |
Endpoint:
https://{USER}.carto.com/api/v1/map/named/routingtest/750/401.png?config={"postcode1":"'{postcode_1}'","postcode2":"'{postcode_2}'"}
Real Example