因为百度地图 高德地图导航没有河流
所有自己下点地图
然后切割选择上海,注意,线一定要转线段。然后倒入pg
建立拓扑关系
ALTER TABLE shanghairiver ADD COLUMN "source" integer;
ALTER TABLE shanghairiver ADD COLUMN "target" integer;
--创建拓扑
SELECT pgr_createTopology('shanghairiver', 0.00001, 'geom', 'gid');
--为起点号终点号加空间索引
CREATE INDEX source_idx3 ON shanghairiver("source");
CREATE INDEX target_idx3 ON shanghairiver("target");
--添加长度字段、并计算赋值
ALTER TABLE shanghairiver ADD COLUMN length double precision;
update shanghairiver set length =st_length(geom);
--将长度值赋给reverse_cost,作为路线选择标准
ALTER TABLE shanghairiver ADD COLUMN reverse_cost double precision;
UPDATE shanghairiver SET reverse_cost = length;
CREATE OR REPLACE FUNCTION pgr_fromAtoB(
IN tbl varchar, -- 数据库表名
IN x1 double precision, -- 起点x坐标
IN y1 double precision, -- 起点y坐标
IN x2 double precision, -- 终点x坐标
IN y2 double precision -- 终点y坐标
)
RETURNS TABLE (
seq integer, -- 道路序号
gid integer,
name text, -- 道路名
heading double precision,
cost double precision, -- 消耗
geom geometry --