summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/mercatormap/mercatormap.doc.orthodromes.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-04-21 03:02:38 +0000
committerNorbert Preining <norbert@preining.info>2020-04-21 03:02:38 +0000
commit8731cc5ad70723b9a155917df509d857579c355d (patch)
treef6594e2b25c3e0aaf4838d7ada0e8885af3fd532 /macros/latex/contrib/mercatormap/mercatormap.doc.orthodromes.tex
parent2a6dafa8ee740f345650d6a697665bf85a57cc77 (diff)
CTAN sync 202004210302
Diffstat (limited to 'macros/latex/contrib/mercatormap/mercatormap.doc.orthodromes.tex')
-rw-r--r--macros/latex/contrib/mercatormap/mercatormap.doc.orthodromes.tex169
1 files changed, 169 insertions, 0 deletions
diff --git a/macros/latex/contrib/mercatormap/mercatormap.doc.orthodromes.tex b/macros/latex/contrib/mercatormap/mercatormap.doc.orthodromes.tex
new file mode 100644
index 0000000000..1785515841
--- /dev/null
+++ b/macros/latex/contrib/mercatormap/mercatormap.doc.orthodromes.tex
@@ -0,0 +1,169 @@
+% !TeX root = mercatormap.tex
+% !TeX encoding=UTF-8
+% !TeX spellcheck=en_US
+% include file of mercatormap.tex (manual of the LaTeX package mercatormap)
+\clearpage
+\section{Orthodromes and Loxodromes}\label{sec:orthodromes}%
+
+A loxodrome is a curve which crosses all meridians with
+a constant angle. On Mercator maps, loxodromes are depicted as straight lines
+and can be drawn by simple \tikzname\ |path| elements.
+
+On a sphere, the shortest path
+from one point to another runs along an orthodrome where
+an orthodrome is a great-circle.
+
+The mathematical background and further information are found in \cite{Sturm:2020}.
+
+
+%-------------------------------------------------------------------------------
+\subsection{Orthodrome Drawing}
+
+\begin{docMrcKey}{samples}{=\meta{number}}{no default, initially |100|}
+ An orthodrome curve is approximated by a polygon trajectory with
+ \meta{number} pieces.
+\end{docMrcKey}
+
+
+\begin{docTikzKey}{mermap samples}{=\meta{number}}{style, no default}
+ \tikzname\ variant to set \refKey{/mermap/samples}.
+\end{docTikzKey}
+
+
+\begin{docCommand}{mrcdraworthodrome}{\oarg{options}\marg{lat1}\marg{lon1}\marg{lat2}\marg{lon2}}
+ Draws an orthodrome curve from a point with
+ latitude \meta{lat1} and longitude \meta{lon1}
+ to a point with
+ latitude \meta{lat2} and longitude \meta{lon2}.
+ This is a \tikzname\ path object where \meta{options} are
+ \tikzname\ settings for this path. There are two orthodrome pieces connecting
+ two positions (forming a great-circle). \refCom{mrcdraworthodrome} does
+ not necessarily choose the shorter one, see \cite{Sturm:2020}.
+ The drawn orthodrome is a spherical approximation instead of an ellipsoidal
+ one.
+ \tikzsetnextfilename{ortho_orthodrome1}%
+ \begin{dispExample}
+ \begin{tikzpicture}
+ \mrcmap[type=areafit,
+ south=40.7,north=48.2,west=-74.1,east=11.6,
+ source=topplusopen web,
+ tex width=\linewidth,tex height=6cm,
+ ]{ortho_orthodrome1}
+ \mrcdrawmap
+ \node[below,font=\fontsize{7pt}{7pt}\sffamily] at (mrcmap.south)
+ {\mrcmapattribution};
+ \mrcclipmap
+ \draw (mrcmap.south west) rectangle (mrcmap.north east);
+ \mrcdraworthodrome[red,very thick,mermap samples=100]
+ {48.14}{11.58}{40.71}{-74.01}
+ \node[red,fill=white] at ([above=1.3cm]mrcmap) {
+ \mrcprettyorthodistance{48.14}{11.58}{40.71}{-74.01} };
+ \end{tikzpicture}
+ \end{dispExample}
+\end{docCommand}
+
+
+\clearpage
+\begin{docCommand}{mrcNPdraworthodrome}{\oarg{options}\marg{name1}\marg{name2}}
+ Identical to \refCom{mrcdraworthodrome}, but the start and end point are
+ described by named positions \meta{name1} and \meta{name2}.
+
+ \tikzsetnextfilename{ortho_orthodrome2}%
+ \begin{dispExample}
+ \begin{tikzpicture}
+ \mrcNPdef{munich}{48.14}{11.58}
+ \mrcNPdef{newyork}{40.71}{-74.01}
+ \mrcmap[type=areafit, area={munich,newyork},
+ source=topplusopen web,
+ tex width=\linewidth,tex height=6cm,
+ ]{ortho_orthodrome2}
+ \mrcdrawmap
+ \node[below,font=\fontsize{7pt}{7pt}\sffamily] at (mrcmap.south)
+ {\mrcmapattribution};
+ \mrcclipmap
+ \draw (mrcmap.south west) rectangle (mrcmap.north east);
+ \mrcmarker{type=pin,named position=munich,contents={M\"unchen}}
+ \mrcmarker{type=pinflip,shift=5mm,named position=newyork,
+ contents={New York City}}
+ \mrcNPdraworthodrome[red,very thick] {munich}{newyork}
+ \draw[blue,very thick] (\mrcNPcs{munich}) -- (\mrcNPcs{newyork});
+ \node[red,fill=white] at ([above=1.3cm]mrcmap) {
+ \mrcNPprettyorthodistance{munich}{newyork} };
+ \node[blue,fill=white] at ([below=5mm]mrcmap) {
+ \mrcNPprettyloxodistance{munich}{newyork} };
+ \end{tikzpicture}
+ \end{dispExample}
+\end{docCommand}
+
+
+\clearpage
+%-------------------------------------------------------------------------------
+\subsection{Orthodromic and Loxodromic Distances}
+
+\begin{docCommand}{mrcprettyorthodistance}{\marg{lat1}\marg{lon1}\marg{lat2}\marg{lon2}}
+ Approximate orthodromic distance between two points
+ with latitude \meta{lat1}, longitude \meta{lon1}
+ and latitude \meta{lat2}, longitude \meta{lon2}
+ with three valid digits.
+ \begin{dispExample}
+ \mrcprettyorthodistance{48.14}{11.58}{40.71}{-74.01}
+ \end{dispExample}
+\end{docCommand}
+
+
+\begin{docCommand}{mrcNPprettyorthodistance}{\marg{name1}\marg{name2}}
+ Approximate orthodromic distance between two named positions
+ \meta{name1} and \meta{name2} with three valid digits.
+ \begin{dispExample}
+ \mrcNPdef{munich}{48.14}{11.58}
+ \mrcNPdef{newyork}{40.71}{-74.01}
+ \mrcNPprettyorthodistance{munich}{newyork}
+ \end{dispExample}
+\end{docCommand}
+
+
+\begin{docCommand}{mrcstoreorthodistance}{\marg{macro}\marg{lat1}\marg{lon1}\marg{lat2}\marg{lon2}}
+ Stores the approximate orthodromic distance (in kilometers) between two points
+ with latitude \meta{lat1}, longitude \meta{lon1}
+ and latitude \meta{lat2}, longitude \meta{lon2}
+ to a given \meta{macro}.
+ \begin{dispExample}
+ \mrcstoreorthodistance\mydist{48.14}{11.58}{40.71}{-74.01}
+ \mydist
+ \end{dispExample}
+\end{docCommand}
+
+
+\begin{docCommand}{mrcprettyloxodistance}{\marg{lat1}\marg{lon1}\marg{lat2}\marg{lon2}}
+ Approximate loxodromic distance between two points
+ with latitude \meta{lat1}, longitude \meta{lon1}
+ and latitude \meta{lat2}, longitude \meta{lon2}
+ with three valid digits.
+ \begin{dispExample}
+ \mrcprettyloxodistance{48.14}{11.58}{40.71}{-74.01}
+ \end{dispExample}
+\end{docCommand}
+
+
+\begin{docCommand}{mrcNPprettyloxodistance}{\marg{name1}\marg{name2}}
+ Approximate loxodromic distance between two named positions
+ \meta{name1} and \meta{name2} with three valid digits.
+ \begin{dispExample}
+ \mrcNPdef{munich}{48.14}{11.58}
+ \mrcNPdef{newyork}{40.71}{-74.01}
+ \mrcNPprettyloxodistance{munich}{newyork}
+ \end{dispExample}
+\end{docCommand}
+
+
+\begin{docCommand}{mrcstoreloxodistance}{\marg{macro}\marg{lat1}\marg{lon1}\marg{lat2}\marg{lon2}}
+ Stores the approximate loxodromic distance (in kilometers) between two points
+ with latitude \meta{lat1}, longitude \meta{lon1}
+ and latitude \meta{lat2}, longitude \meta{lon2}
+ to a given \meta{macro}.
+ \begin{dispExample}
+ \mrcstoreloxodistance\mydist{48.14}{11.58}{40.71}{-74.01}
+ \mydist
+ \end{dispExample}
+\end{docCommand}
+