65 lines
3.3 KiB
SQL
65 lines
3.3 KiB
SQL
create table point (
|
|
id serial primary key,
|
|
nom text not null,
|
|
geom geometry(point, 4326) not null
|
|
);
|
|
|
|
create index idx_point_geom on point using gist (geom);
|
|
|
|
create table route (
|
|
id serial primary key,
|
|
source int,
|
|
target int,
|
|
cost double precision,
|
|
reverse_cost double precision,
|
|
geom geometry(linestring, 4326) not null
|
|
);
|
|
|
|
create index idx_route_geom on route using gist (geom);
|
|
|
|
|
|
INSERT INTO point (nom, geom) VALUES
|
|
('AA', ST_SetSRID(ST_MakePoint(-4.015716401134025, 48.74485278820124), 4326)),
|
|
('AB', ST_SetSRID(ST_MakePoint(-4.015314069791999, 48.74487047504222), 4326)),
|
|
('AC', ST_SetSRID(ST_MakePoint(-4.014884916360503, 48.744336329699905), 4326)),
|
|
('AD', ST_SetSRID(ST_MakePoint(-4.0146327887195, 48.74421252036642), 4326)),
|
|
('AE', ST_SetSRID(ST_MakePoint(-4.01295805886216, 48.744454737377325), 4326)),
|
|
('AF', ST_SetSRID(ST_MakePoint(-4.013003500194497, 48.74529707579618), 4326)),
|
|
('AG', ST_SetSRID(ST_MakePoint(-4.013866885508904, 48.745307063914076), 4326)),
|
|
('AH', ST_SetSRID(ST_MakePoint(-4.015886500302756, 48.74435152496037), 4326)),
|
|
('AI', ST_SetSRID(ST_MakePoint(-4.0169922393896265, 48.74407185159144), 4326)),
|
|
('AJ', ST_SetSRID(ST_MakePoint(-4.016706525682735, 48.74357654268962), 4326)),
|
|
('AK', ST_SetSRID(ST_MakePoint(-4.016130238694671, 48.74305994900348), 4326)),
|
|
('AL', ST_SetSRID(ST_MakePoint(-4.01268322695224, 48.74633108784164), 4326)),
|
|
('AM', ST_SetSRID(ST_MakePoint(-4.011502153774407, 48.74527636920614), 4326)),
|
|
('AN', ST_SetSRID(ST_MakePoint(-4.011299684064602, 48.7474391861085), 4326)),
|
|
('AO', ST_SetSRID(ST_MakePoint(-4.0092682382493825, 48.747176626882954), 4326)),
|
|
('AP', ST_SetSRID(ST_MakePoint(-4.016986599170676, 48.74580116975868), 4326)),
|
|
('AQ', ST_SetSRID(ST_MakePoint(-4.018177422002985, 48.74477062852221), 4326)),
|
|
('AR', ST_SetSRID(ST_MakePoint(-4.017619213917883, 48.743923429030154), 4326)),
|
|
('AS', ST_SetSRID(ST_MakePoint(-4.01778756237945, 48.74377735868944), 4326)),
|
|
('AT', ST_SetSRID(ST_MakePoint(-4.018133119765466, 48.74377151586775), 4326)),
|
|
('AU', ST_SetSRID(ST_MakePoint(-4.021500089167666, 48.74375398739865), 4326)),
|
|
('AV', ST_SetSRID(ST_MakePoint(-4.017636934769236, 48.74298272869709), 4326)),
|
|
('AW', ST_SetSRID(ST_MakePoint(-4.00982054515667, 48.74434880428204), 4326)),
|
|
('AX', ST_SetSRID(ST_MakePoint(-4.009981334301317, 48.74419288113848), 4326)),
|
|
('AY', ST_SetSRID(ST_MakePoint(-4.0070587566129525, 48.74134972191262), 4326)),
|
|
('AZ', ST_SetSRID(ST_MakePoint(-4.006265083289092, 48.74170845222292), 4326)),
|
|
('BA', ST_SetSRID(ST_MakePoint(-4.006068894377577, 48.74217891432291), 4326)),
|
|
('BB', ST_SetSRID(ST_MakePoint(-4.006826896990252, 48.74318451229527), 4326)),
|
|
('BC', ST_SetSRID(ST_MakePoint(-4.003418425059911, 48.74296605378058), 4326)),
|
|
('BD', ST_SetSRID(ST_MakePoint(-4.003359497656666, 48.74446857837965), 4326)),
|
|
('BE', ST_SetSRID(ST_MakePoint(-4.024275254166002, 48.74298397587782), 4326)),
|
|
('BF', ST_SetSRID(ST_MakePoint(-4.019140945079908, 48.742638305027356), 4326)),
|
|
('BG', ST_SetSRID(ST_MakePoint(-4.0182483929763535, 48.742208182126596), 4326));
|
|
|
|
INSERT INTO route (source, target, cost, reverse_cost, geom)
|
|
SELECT
|
|
a.id AS source,
|
|
b.id AS target,
|
|
ST_Distance(a.geom::geography, b.geom::geography) AS cost,
|
|
ST_Distance(a.geom::geography, b.geom::geography) AS reverse_cost,
|
|
ST_MakeLine(a.geom, b.geom) AS geom
|
|
FROM point a
|
|
JOIN point b ON a.nom = 'O' and b.nom='W';
|