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); create table zone ( id serial primary key, name text, geom geometry(polygon, 4326) -- on choisit srid 4326 (wgs84) ); 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'; INSERT INTO zone (name, geom) VALUES ( 'Ouest', ST_GeomFromText('POLYGON(( -4.040739030549147 48.745741606853215, -4.036245459319038 48.74828131566804, -4.031850647896184 48.747923159378665, -4.03234444693246 48.74938832805965, -4.026912657533427 48.75020229220042, -4.026468238400779 48.74919297470383, -4.02523374081009 48.74919297470383, -4.0203945102545875 48.740238464088826, -4.022567226014201 48.73880559432817, -4.026122579075386 48.740238464088826, -4.02745583647333 48.74219231157387, -4.03397398375217 48.74287614025014, -4.034122123463052 48.741215397325284, -4.035455380860997 48.741215397325284, -4.040739030549147 48.745741606853215, ))', 4326) ); INSERT INTO zone (name, geom) VALUES ( 'Centre', ST_GeomFromText('POLYGON(( -4.02523374081009 48.74919297470383, -4.02360420399038 48.753295235684185, -4.019851331314684 48.75345801690918, -4.014518301722906 48.75231853725851, -4.012641865385059 48.75323012304652, -4.006666897046123 48.7528720020309, -4.009234652034756 48.74313664396521, -4.013036904614079 48.744536828300426, -4.015604659602713 48.74349483436875, -4.01402450268663 48.741541037517905, -4.014326361007127 48.74136749047571, -4.016436329474995 48.74286326394115, -4.018177053460988 48.74218495358343, -4.016937446986115 48.740984843601765, -4.018678170972106 48.73959337586721, -4.020366145746403 48.74016736097527, -4.0203945102545875 48.740238464088826, -4.02523374081009 48.74919297470383 ))', 4326) ); INSERT INTO zone (name, geom) VALUES ( 'Est', ST_GeomFromText('POLYGON(( -4.006666897046123 48.7528720020309, -4.005870355067274 48.75026102618178, -4.003629135498721 48.748652881336724, -3.999937714914126 48.7464361648583, -3.9950927255526962 48.74493656593118, -3.9940050748797225 48.745523370840516, -3.9910057957512173 48.745762437542936, -3.9901158997460566 48.74515390188169, -3.991851437957331 48.74306933218229, -3.9887834656682424 48.7393151550319, -3.993896752679784 48.73699956468981, -3.9941353727403235 48.74093375678278, -3.9980896480292487 48.74147327911715, -4.000544025794788 48.740416709111294, -4.00364608658179 48.741630638707136, -4.005077806945022 48.740394228657095, -4.007054944589484 48.740956236995665, -4.008248044892178 48.74050663082754, -4.008657107853101 48.740888796326814, -4.007157210329716 48.74122599876611, -4.00933887945464 48.7431367698581, -4.009234652034756 48.74313664396521, -4.006666897046123 48.7528720020309, ))', 4326) );