\contentsline {section}{\numberline {1}Introduction}{1}% \contentsline {subsection}{\numberline {1.1}Binary instruction sets on the web platform}{1}% \contentsline {subsection}{\numberline {1.2}Performance as important factor for web applications}{1}% \contentsline {subsection}{\numberline {1.3}Topology simplification for rendering performance}{2}% \contentsline {subsection}{\numberline {1.4}Structure of this thesis}{2}% \contentsline {section}{\numberline {2}Principles}{3}% \contentsline {subsection}{\numberline {2.1}Polygon basics}{3}% \contentsline {subsubsection}{\numberline {2.1.1}Topological aspects}{3}% \contentsline {subsection}{\numberline {2.2}LineString simplification}{3}% \contentsline {subsubsection}{\numberline {2.2.1}Positional errors}{3}% \contentsline {subsubsection}{\numberline {2.2.2}Length errors}{3}% \contentsline {subsubsection}{\numberline {2.2.3}Area Errors}{3}% \contentsline {section}{\numberline {3}Algorithms}{4}% \contentsline {subsection}{\numberline {3.1}n-th point algorithm}{4}% \contentsline {subsection}{\numberline {3.2}Random-point routine}{4}% \contentsline {subsection}{\numberline {3.3}Radial distance algorithm}{4}% \contentsline {subsection}{\numberline {3.4}Perpendicular distance algorithm}{4}% \contentsline {subsection}{\numberline {3.5}Reumann-Witkam simplification}{4}% \contentsline {subsection}{\numberline {3.6}Opheim simplification}{4}% \contentsline {subsection}{\numberline {3.7}Lang simplification}{4}% \contentsline {subsection}{\numberline {3.8}Douglas-Peucker simplification}{4}% \contentsline {subsubsection}{\numberline {3.8.1}with reduction parameter}{4}% \contentsline {subsection}{\numberline {3.9}Jenks simplification}{4}% \contentsline {subsection}{\numberline {3.10}Visvalingam-Whyatt simplification}{4}% \contentsline {subsection}{\numberline {3.11}Zhao-Saalfeld simplification}{4}% \contentsline {subsection}{\numberline {3.12}Summary}{4}% \contentsline {section}{\numberline {4}WebAssembly}{5}% \contentsline {subsection}{\numberline {4.1}Introduction to Webassembly}{5}% \contentsline {subsubsection}{\numberline {4.1.1}Existing compilers}{5}% \contentsline {subsubsection}{\numberline {4.1.2}Technical hurdles}{5}% \contentsline {subsubsection}{\numberline {4.1.3}Benefits of WebAssembly}{5}% \contentsline {subsection}{\numberline {4.2}Two test cases - performance and integration}{6}% \contentsline {paragraph}{Performance}{6}% \contentsline {paragraph}{Integration}{6}% \contentsline {section}{\numberline {5}Benchmark}{7}% \contentsline {subsection}{\numberline {5.1}State of the art: simplifyJS}{7}% \contentsline {subsection}{\numberline {5.2}The webassembly solution}{8}% \contentsline {subsection}{\numberline {5.3}The implementation}{8}% \contentsline {section}{\numberline {6}Compiling an existing C++ library for use on the web}{9}% \contentsline {subsection}{\numberline {6.1}State of the art: psimpl}{9}% \contentsline {subsection}{\numberline {6.2}Compiling to webassembly}{9}% \contentsline {subsubsection}{\numberline {6.2.1}Introduction to emscripten}{9}% \contentsline {subsection}{\numberline {6.3}Preserving topology GeoJSON vs TopoJSON}{9}% \contentsline {subsection}{\numberline {6.4}The implementation}{9}% \contentsline {section}{\numberline {7}Results}{9}% \contentsline {subsection}{\numberline {7.1}Benchmark results}{9}% \contentsline {subsection}{\numberline {7.2}Comparing the results of different algorithms}{9}% \contentsline {section}{\numberline {8}Conclusion}{10}%