diff --git a/mj-msc.tex b/mj-msc.tex index 12ad166..d2ea100 100644 --- a/mj-msc.tex +++ b/mj-msc.tex @@ -593,6 +593,7 @@ throughout this paper and the implementation. \end{description} \subsection{Algorithm Implementation Process} +\label{sec:algorithm-implementation-process} \tikzset{ startstop/.style={trapezium,text centered,minimum height=2em, @@ -655,13 +656,13 @@ We have taken a different approach: process each step fully for the line, before moving to the next step. This way provides the following advantages: \begin{itemize} - \item For \textsc{eliminate self-crossing} stage, when it finds a bend with the right - sum of inflection angles, it checks the whole line for self-crossings. - This is impossible with streaming because it requires having the full - line in memory. It could be optimized by, for example, looking for a - fixed number of neighboring bends (say, 10), but that would complicate - the implementation. + \item For \textsc{eliminate self-crossing} stage, when it finds a bend with + the right sum of inflection angles, it checks the whole line for + self-crossings. This is impossible with streaming because it requires + having the full line in memory. It could be optimized by, for example, + looking for a fixed number of neighboring bends (say, 10), but that + would complicate the implementation. \item \textsc{fix gentle inflections} is iterating the same line twice from opposite directions. That could be re-written to streaming fashion, but @@ -1260,6 +1261,7 @@ beyond repeating the elimination steps in an illustrated example. \end{figure} \subsection{Combination Operator} +\label{sec:combination-operator} Combination operator was not implemented in this version. @@ -1331,6 +1333,7 @@ the algorithm. \section{Results} \subsection{Generalization Results of Analyzed Rivers} +\label{sec:generalization-results-of-analyzed-rivers} Figures~\ref{fig:salvis-wm-50k} and~\ref{fig:salvis-wm-250k} visualize the generalization result for Šalčia and Visinčia using {\WM} with the @@ -1457,15 +1460,41 @@ transformation was described and visualized. The implemented algorithm was applied for different shapes and compared to national (Lithuanian) datasets. About 1,000 lines of Procedural SQL were written for the algorithm and tests, -and a few hundred lines of supporting scripts in Make, Python, Awk, Bash. -With the help of its permissive license and early interest, the algorithm code has +and a few hundred lines of supporting scripts in Make, Python, Awk, Bash. With +the help of its permissive license and early interest, the algorithm code has already been used to create a prototype on-line service to evaluate the algorithm robustness. -\section{Related Work And Future Suggestions} +\section{Future Suggestions} \label{sec:related_work} -% TODO: write after section~\ref{sec:conclusions} is complete. +These are the areas for possible future work with this, published, +implementation: + +\begin{itemize} + + \item Implement bend combination operator + (section~\ref{sec:combination-operator}). + + \item Fine-tune parameters for bend exaggeration. + Section~\ref{sec:generalization-results-of-analyzed-rivers} contains + a exaggerated bends that became sharp. + + \item Research when bends should be marked as \textsc{isolated}. As is + seen from examples, the current criteria is not robust enough. + + \item Once the points above yield a satisfactory result, efficiency of the + algorithm could be improved to work on the lines in "streaming" fashion + (more details in section~\ref{sec:algorithm-implementation-process}). + +\end{itemize} + +That sums up what could be improved without changing the algorithm in a +significant way. Other than that, further area of research is working towards +graduating the algorithm from "isolated cartographic generalization" to "full +cartographic generalization". The current operators of {\WM} algorithm have a +few venues to preserve the surrounding topology. This could be further +researched and extended. \section{Acknowledgments} \label{sec:acknowledgments}