working with geometries

This commit is contained in:
Motiejus Jakštys 2021-05-19 22:57:48 +03:00 committed by Motiejus Jakštys
parent 4b6c43406f
commit 93d0dba307
4 changed files with 17 additions and 12 deletions

View File

@ -21,6 +21,7 @@ FIGURES = test-figures \
selfcrossing-1-before \ selfcrossing-1-before \
selfcrossing-1-after selfcrossing-1-after
# paper sizes in mm
A4p = 210x297 A4p = 210x297
A4l = 297x210 A4l = 297x210
A5p = 148x210 A5p = 148x210
@ -31,6 +32,10 @@ A7p = 74x105
A7l = 105x74 A7l = 105x74
A8p = 52x74 A8p = 52x74
A8l = 74x52 A8l = 74x52
# interesting scales:
# - 1:10000 (GDR10)
# - 1:50000 (GDR50)
# - 1:250000 (GDR250)
################################# #################################
# The thesis, publishable version # The thesis, publishable version

View File

@ -10,7 +10,7 @@ from matplotlib import rc
CMAP = 'tab20c' CMAP = 'tab20c'
BOUNDS = ('xmin', 'ymin', 'xmax', 'ymax') BOUNDS = ('xmin', 'ymin', 'xmax', 'ymax')
INCH_MM = 25.4 # mm INCH_MM = 25.4
BLACK, GREEN, ORANGE, PURPLE = '#000000', '#1b9e77', '#d95f02', '#7570b3' BLACK, GREEN, ORANGE, PURPLE = '#000000', '#1b9e77', '#d95f02', '#7570b3'
PSQL_CREDS = "host=127.0.0.1 dbname=osm user=osm password=osm" PSQL_CREDS = "host=127.0.0.1 dbname=osm user=osm password=osm"

View File

@ -85,7 +85,7 @@ Current open-source line generalization solutions have their roots in
NOTICE: this value should be copied to layer2img.py:TEXTWIDTH, so dimensions NOTICE: this value should be copied to layer2img.py:TEXTWIDTH, so dimensions
of inline images are reasonable. of inline images are reasonable.
Text width in cm: {\printinunitsof{cm}\prntlen{\textwidth}} textwidth in cm: {\printinunitsof{cm}\prntlen{\textwidth}}
\fi \fi
When creating small-scale maps, often the detail of the data source is greater When creating small-scale maps, often the detail of the data source is greater
@ -278,7 +278,7 @@ direction.
\begin{figure}[h] \begin{figure}[h]
\centering \centering
\includegraphics[width=\linewidth]{test-figures} \includegraphics[width=\textwidth]{test-figures}
\caption{Line geometries for automated test cases} \caption{Line geometries for automated test cases}
\label{fig:test-figures} \label{fig:test-figures}
\end{figure} \end{figure}
@ -340,7 +340,7 @@ but with bends colored as polygons: each color is a distinctive bend.
\begin{figure}[h] \begin{figure}[h]
\centering \centering
\includegraphics[width=\linewidth]{fig8-definition-of-a-bend} \includegraphics[width=\textwidth]{fig8-definition-of-a-bend}
\caption{Originally Figure 8: detected bends are highlighted} \caption{Originally Figure 8: detected bends are highlighted}
\label{fig:fig8-definition-of-a-bend} \label{fig:fig8-definition-of-a-bend}
\end{figure} \end{figure}

View File

@ -32,10 +32,10 @@ create table wm_figures (name text, way geometry);
-- ogr2ogr -update -f PostgreSQL PG:"host=127.0.0.1 user=osm password=osm dbname=osm" fig8.gpkg -- ogr2ogr -update -f PostgreSQL PG:"host=127.0.0.1 user=osm password=osm dbname=osm" fig8.gpkg
-- to "normalize" a new line when it's in `f`: -- to "normalize" a new line when it's in `f`:
-- select st_astext(st_snaptogrid(st_transscale(geometry, -19.5, .016, 4000, 4000), 1)) from f; -- select st_astext(st_snaptogrid(st_transscale(geometry, -19.5, .016, 4000, 4000), 1)) from f;
insert into wm_figures (name, way) values ('fig3',ST_GeomFromText('LINESTRING(0 0,12 0,13 4,20 2,20 0,32 0,33 10,38 16,43 15,44 10,44 0,60 0)')); insert into wm_figures (name, way) values ('fig3','LINESTRING(0 0,12 0,13 4,20 2,20 0,32 0,33 10,38 16,43 15,44 10,44 0,60 0)'::geometry);
insert into wm_figures (name, way) values ('fig3-1',ST_GeomFromText('LINESTRING(0 0,12 0,13 4,20 2,20 0,32 0,33 10,38 16,43 15,44 10,44 0)')); insert into wm_figures (name, way) values ('fig3-1','LINESTRING(0 0,12 0,13 4,20 2,20 0,32 0,33 10,38 16,43 15,44 10,44 0)'::geometry);
insert into wm_figures (name, way) values ('fig5',ST_GeomFromText('LINESTRING(0 39,19 52,27 77,26 104,41 115,49 115,65 103,65 75,53 45,63 15,91 0)')); insert into wm_figures (name, way) values ('fig5','LINESTRING(0 39,19 52,27 77,26 104,41 115,49 115,65 103,65 75,53 45,63 15,91 0)'::geometry);
insert into wm_figures (name, way) values ('fig6',ST_GeomFromText('LINESTRING(84 47,91 59,114 64,122 80,116 92,110 93,106 106,117 118,136 107,135 76,120 45,125 39,141 39,147 32)')); insert into wm_figures (name, way) values ('fig6','LINESTRING(84 47,91 59,114 64,122 80,116 92,110 93,106 106,117 118,136 107,135 76,120 45,125 39,141 39,147 32)'::geometry);
insert into wm_figures (name, way) values ('fig6-rev',ST_Reverse(ST_Translate((select way from wm_figures where name='fig6'), 60, 0))); insert into wm_figures (name, way) values ('fig6-rev',ST_Reverse(ST_Translate((select way from wm_figures where name='fig6'), 60, 0)));
insert into wm_figures (name, way) values ('fig6-combi', insert into wm_figures (name, way) values ('fig6-combi',
ST_Union( ST_Union(
@ -43,12 +43,12 @@ insert into wm_figures (name, way) values ('fig6-combi',
ST_Translate((select way from wm_figures where name='fig6'), 80, 90) ST_Translate((select way from wm_figures where name='fig6'), 80, 90)
) )
); );
insert into wm_figures (name, way) values('fig8', ST_GeomFromText('LINESTRING(173 12,174 10,180 8,186 8,186 13,191 11,189 6,201 5,203 11,216 16,216 6,222 7,229 3,236 2,239 6,243 8,248 6)')); insert into wm_figures (name, way) values('fig8', 'LINESTRING(173 12,174 10,180 8,186 8,186 13,191 11,189 6,201 5,203 11,216 16,216 6,222 7,229 3,236 2,239 6,243 8,248 6)'::geometry);
insert into wm_figures (name, way) values ('inflection-1',ST_GeomFromText('LINESTRING(110 24,114 20,133 20,145 15,145 0,136 8,123 10,114 10,111 2)')); insert into wm_figures (name, way) values ('inflection-1','LINESTRING(110 24,114 20,133 20,145 15,145 0,136 8,123 10,114 10,111 2)'::geometry);
insert into wm_figures (name, way) values ('multi-island',ST_GeomFromText('MULTILINESTRING((-15 10,-10 10,-5 11,0 11,5 11,10 10,11 9,13 10,15 9),(-5 11,-2 15,0 16,2 15,5 11))')); insert into wm_figures (name, way) values ('multi-island','MULTILINESTRING((-15 10,-10 10,-5 11,0 11,5 11,10 10,11 9,13 10,15 9),(-5 11,-2 15,0 16,2 15,5 11))'::geometry);
-- TODO: there is a bug and it does not go through `self_crossing` function. -- TODO: there is a bug and it does not go through `self_crossing` function.
insert into wm_figures (name, way) values ('selfcrossing-1',ST_GeomFromText('LINESTRING(-27 180,-20 166,-21 142,-18 136,55 136,55 136,71 145,44 165,37 146,22 145,14 164,11 164,3 146,-12 146,-13 176,-18 184)')); insert into wm_figures (name, way) values ('selfcrossing-1','LINESTRING(-27 180,-20 166,-21 142,-18 136,55 136,55 136,71 145,44 165,37 146,22 145,14 164,11 164,3 146,-12 146,-13 176,-18 184)'::geometry);
insert into wm_figures (name, way) values ('selfcrossing-1-rev',ST_Reverse(ST_Translate((select way from wm_figures where name='selfcrossing-1'), 0, 60))); insert into wm_figures (name, way) values ('selfcrossing-1-rev',ST_Reverse(ST_Translate((select way from wm_figures where name='selfcrossing-1'), 0, 60)));
delete from wm_debug where name in (select distinct name from wm_figures); delete from wm_debug where name in (select distinct name from wm_figures);