more explicit intermediate steps
This commit is contained in:
parent
8b94a7ba99
commit
e78250df49
4
Makefile
4
Makefile
@ -9,6 +9,10 @@ test: tests.sql .faux.db
|
||||
test-integration: .faux_filter-rivers
|
||||
./db -f tests-integration.sql
|
||||
|
||||
clean:
|
||||
-./db stop
|
||||
-rm .faux_filter-rivers .faux_import-osm .faux.db
|
||||
|
||||
.faux_filter-rivers: .faux_import-osm
|
||||
./db -v where="$(WHERE)" -f aggregate-rivers.sql
|
||||
touch $@
|
||||
|
@ -24,7 +24,7 @@ begin
|
||||
end
|
||||
$$ language plpgsql;
|
||||
|
||||
create temporary table aggregate_rivers_tmp (osm_id bigint, name text, way geometry) on commit drop;
|
||||
create temporary table aggregate_rivers_tmp (osm_id bigint, name text, way geometry);
|
||||
create index aggregate_rivers_tmp_id on aggregate_rivers_tmp(osm_id);
|
||||
create index aggregate_rivers_tmp_gix on aggregate_rivers_tmp using gist(way) include(name);
|
||||
|
||||
@ -34,3 +34,4 @@ insert into aggregate_rivers_tmp
|
||||
|
||||
drop table if exists agg_rivers;
|
||||
create table agg_rivers as (select * from aggregate_rivers());
|
||||
drop table aggregate_rivers_tmp;
|
||||
|
@ -1,3 +1,5 @@
|
||||
\i wm.sql
|
||||
|
||||
select ST_SimplifyWM_DEBUG(way) from agg_rivers;
|
||||
drop table if exists agg_rivers_wm;
|
||||
create table agg_rivers_wm (name text, way geometry);
|
||||
insert into agg_rivers_wm (name, way) select name, ST_SimplifyWM_DEBUG(way) from agg_rivers where name='Visinčia';
|
||||
|
24
wm.sql
24
wm.sql
@ -328,23 +328,23 @@ begin
|
||||
mutated = true;
|
||||
foreach line in array lines loop
|
||||
while mutated loop
|
||||
execute format('drop table if exists demo_%sfigures0', i);
|
||||
execute format('create table demo_%sfigures0 (way geometry)', i);
|
||||
execute format('drop table if exists demo_%safigures', i);
|
||||
execute format('create table demo_%safigures (way geometry)', i);
|
||||
-- if anyone has suggestions how to insert a variable to a table without such
|
||||
-- hackery, I'll be glad to know
|
||||
execute format('insert into demo_%sfigures0 select $1;', i) using (select unnest(array[line]));
|
||||
execute format('insert into demo_%safigures select $1;', i) using (select unnest(array[line]));
|
||||
bends = detect_bends(line);
|
||||
execute format('drop table if exists demo_%sbends1', i);
|
||||
execute format('create table demo_%sbends1 (i bigint, way geometry)', i);
|
||||
execute format('insert into demo_%sbends1 (i, way) select generate_subscripts($1, 1), unnest($1)', i) using bends;
|
||||
execute format('drop table if exists demo_%sbbends', i);
|
||||
execute format('create table demo_%sbbends (i bigint, way geometry)', i);
|
||||
execute format('insert into demo_%sbbends (i, way) select generate_subscripts($1, 1), unnest($1)', i) using bends;
|
||||
bends = fix_gentle_inflections(bends);
|
||||
execute format('drop table if exists demo_%sinflections2', i);
|
||||
execute format('create table demo_%sinflections2 (i bigint, way geometry)', i);
|
||||
execute format('insert into demo_%sinflections2 (i, way) select generate_subscripts($1, 1), unnest($1)', i) using bends;
|
||||
execute format('drop table if exists demo_%scinflections', i);
|
||||
execute format('create table demo_%scinflections (i bigint, way geometry)', i);
|
||||
execute format('insert into demo_%scinflections (i, way) select generate_subscripts($1, 1), unnest($1)', i) using bends;
|
||||
select * from self_crossing(bends) into bends, mutated;
|
||||
execute format('drop table if exists demo_%sselfcrossing3', i);
|
||||
execute format('create table demo_%sselfcrossing3 (i bigint, way geometry)', i);
|
||||
execute format('insert into demo_%sselfcrossing3 (i, way) select generate_subscripts($1, 1), unnest($1)', i) using bends;
|
||||
execute format('drop table if exists demo_%sdselfcrossing', i);
|
||||
execute format('create table demo_%sdselfcrossing (i bigint, way geometry)', i);
|
||||
execute format('insert into demo_%sdselfcrossing (i, way) select generate_subscripts($1, 1), unnest($1)', i) using bends;
|
||||
line = st_linemerge(st_union(bends));
|
||||
i = i + 1;
|
||||
end loop;
|
||||
|
Loading…
Reference in New Issue
Block a user