diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/mercatormap/mercatormap.doc.examples.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/mercatormap/mercatormap.doc.examples.tex | 373 |
1 files changed, 373 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/mercatormap/mercatormap.doc.examples.tex b/Master/texmf-dist/doc/latex/mercatormap/mercatormap.doc.examples.tex new file mode 100644 index 00000000000..f2630fef152 --- /dev/null +++ b/Master/texmf-dist/doc/latex/mercatormap/mercatormap.doc.examples.tex @@ -0,0 +1,373 @@ +% !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{Examples}\label{sec:examples}% + +The following map examples may be used as tutorials and +starting point for own applications. +Also see |mercatormap-example.tex| for a compilable full example. +Note to do all preparations documented in \Fullref{sec:python}. + + +%------------------------------------------------------------------------------- +\subsection{Reference Position} + +With \refKey{/mermap/supply/type}|=|\docValue{reference} a map with a +\emph{reference position} is constructed. Here, Munich is taken as +reference position and center of the map. Since the position is used +more than once, it is stored with \refCom{mrcNPdef} for further reference. +With \refKey{/mermap/supply/flex reference scale} the scale +is set to 1:6\,000\,000. For the background map tiles, a +\refKey{/mermap/supply/source} is selected for download. +This setup is done by \refCom{mrcmap} while \refCom{mrcdrawmap} draws +the downloaded map tiles. + +\tikzsetnextfilename{examples_reference}% +\begin{dispExample*}{center lower, breakable} +\begin{tikzpicture} + \sffamily + \mrcNPdef{munich}{48.137222}{11.575556} + \mrcNPdef{vienna}{48.208333}{16.373056} + \mrcNPdef{cologne}{50.938056}{6.956944} + \mrcNPdef{milano}{45.4625}{9.186389} + \mrcmap[type=reference, + named position=munich, + flex reference scale=6 000 000, + source=topplusopen web, + tex width=14cm, + tex height=14cm]{examples_reference} + \path[draw=yellow!50!gray,fill=yellow!20] + ([xshift=-2mm,yshift=-5mm]mrcmap.south west) rectangle + ([xshift=2mm,yshift=15mm]mrcmap.north east); + \mrcdrawmap + \node[below,font=\fontsize{7pt}{7pt}\sffamily] at (mrcmap.south) + {\mrcmapattribution}; + \path[draw=yellow!50!gray] (mrcmap.south west) rectangle (mrcmap.north east); + + \mrcNPdraworthodrome[red,very thick]{munich}{milano} + \path[blue,very thick] (\mrcNPcs{munich}) -- + node[red,fill=white,sloped,below] {\mrcNPprettyloxodistance{munich}{milano}} + (\mrcNPcs{milano}); + + \mermapsetmarker{type=pin, draw=red, fill=red!10, font=\sffamily\small} + \mrcmarker{named position=munich, contents={M\"unchen}} + \mrcmarker{named position=vienna, contents={Wien}} + \mrcmarker{named position=cologne, contents={K\"oln}} + \mrcmarker{named position=milano, contents={Milano}} + + \node[above left=5mm,font=\Large\bfseries] at (mrcmap.north east) {Munich}; + + \node[above right] at ([yshift=10mm]mrcmap.north west) + {Scale \mrcprettymapscale}; + + \mrcdrawscalebar[width-in-km=300,partitions=6,north-west-outside=0mm;5mm, + single, height=1mm, major style={yellow!50!gray!50!black}] + \path[every node/.style={above,inner sep=0.5mm,font=\sffamily\tiny}] + (mrcscalebar.north west) -- (mrcscalebar.north east) + node[pos=0]{0} node[pos=0.3333]{100} node[pos=0.6667]{200} + node[pos=1]{300\,km}; + + \mrcdrawscalebar[width-in-mile=200,partitions=8, + at={(mrcscalebar.south west)},placement=below right, + single, height=1mm, major style={yellow!50!gray!50!black}] + \path[every node/.style={below,inner sep=0.5mm,font=\sffamily\tiny}] + (mrcscalebar.south west) -- (mrcscalebar.south east) + node[pos=0]{0} node[pos=0.25]{50} node[pos=0.5]{100} node[pos=0.75]{150} + node[pos=1]{200\,miles}; +\end{tikzpicture} +\end{dispExample*} + + +\clearpage +%------------------------------------------------------------------------------- +\subsection{Fitting Area} + +With \refKey{/mermap/supply/type}|=|\docValue{areafit} a map is constructed +where a given area is fitted in. The following example lists some +US-American cities and constructs an \refKey{/mermap/supply/area} which +contains all of them. With \refKey{/mermap/supply/flex area fit}|=15mm| a +border region is added. + + +\tikzsetnextfilename{examples_fitting_area}% +\begin{dispExample*}{center lower} +\begin{tikzpicture} + \mrcNPdef{honolulu}{21.305225}{-157.867} + \mrcNPdef{fairbanks}{64.8379435}{-147.7192214} + \mrcNPdef{sandiego}{32.7146781}{-117.1640995} + \mrcNPdef{miami}{25.7599333}{-80.1951257} + \mrcNPdef{boston}{42.359744}{-71.061322} + \mrcNPdef{denver}{39.7372435}{-104.997378} + \mrcmap[type=areafit, + area={honolulu,fairbanks,sandiego,miami,boston,denver}, + source=stamen terrain, + tex width=15cm, tex height=11cm, + flex area fit=15mm, + ]{examples_fitting_area} + \mrcdrawmap \mrcdrawnetwork + \node[below,font=\fontsize{7pt}{7pt}\sffamily] at (mrcmap.south) + {\mrcmapattribution}; + \node[below left,fill=white,opacity=0.8,text opacity=1] at (mrcmap.north east) + {Scale \mrcprettymapscale}; + \path[draw] (mrcmap.south west) rectangle (mrcmap.north east); + \foreach \city in {honolulu,fairbanks,sandiego,miami,boston,denver} + {\mrcmarker{type=ringx, draw=red, fill=red!20, named position=\city}} +\end{tikzpicture} +\end{dispExample*} + + +\clearpage +%------------------------------------------------------------------------------- +\subsection{Fixed Boundaries} + +With \refKey{/mermap/supply/type}|=|\docValue{boundaries} a map is constructed +with fixed boundaries. In contrast to the other map types, the document +map size cannot be given directly but derives from the map setup. This bears +the risk of too large maps. The following example is a map with exact +boundaries \mrcformlat{-45} to \mrcformlat{-10} +and \mrcformlon{110} to \mrcformlon{155}. A decent \refKey{/mermap/supply/zoom} +is 5 (every zoom step doubles the map size in each direction). + +\tikzsetnextfilename{examples_boundaries}% +\begin{dispExample*}{center lower,breakable} +% \mrcsetapikey{openrouteservice}{YOUR-API-KEY} % registered key +\begin{tikzpicture} + \mrcmap[type=boundaries, + west=110,east=155,south=-45,north=-10, + zoom=5, + source=openrouteservice mapsurfer, + ]{examples_boundaries} + \mrcdrawmap + \node[below,font=\fontsize{7pt}{7pt}\sffamily] at (mrcmap.south) + {\mrcmapattribution}; + \mrcdrawnetwork + \mrcdrawscalebar[width-in-km=1000,partitions=4,south-west-inside=5mm, + major style={blue!50!gray!50!black}] + \path[every node/.style={below,inner sep=0.5mm,font=\sffamily\tiny}] + (mrcscalebar.south west) -- (mrcscalebar.south east) + node[pos=0]{0} node[pos=0.5]{500} + node[pos=1]{1000} node[pos=1,right,yshift=1mm]{km}; + \mrcmarker{lat=-35.3,lon=149.116667,type=pictodropring, + draw=red,fill=red!10} +\end{tikzpicture} +\end{dispExample*} + + +\clearpage +%------------------------------------------------------------------------------- +\subsection{Map Without Map Tiles} + +There is no coercion to use downloaded map tiles, if they are not needed or +wanted. With \refKey{/mermap/supply/target}|=none| no map tiles are downloaded. +The following example draws a rough polygon shape of Germany using +\refEnv{mrcroute*}. + +\tikzsetnextfilename{examples_routemap}% +\begin{dispExample*}{center lower,breakable} +\begin{tikzpicture} + \mrcNPdef{munich}{48.137222}{11.575556} + \mrcNPdef{cologne}{50.938056}{6.956944} + \mrcNPdef{hamburg}{53.550556}{9.993333} + \mrcNPdef{berlin}{52.518611}{13.408333} + \mrcmap[type=areafit, + west=5,east=15,south=47,north=55, + target=none, + tex width=14cm, tex height=14cm, + flex area fit=5mm + ]{examples_routemap} + \mrcclipmap + \path[draw,fill=yellow!5] (mrcmap.south west) rectangle (mrcmap.north east); + \begin{mrcroute*}[ + preaction={fill=black,opacity=.5, + transform canvas={xshift=1mm,yshift=-1mm}}, + draw = green!50!black, + top color = green!50!gray!5, + bottom color = green!50!gray!15] + \mrcpoint{47.57268069220318}{8.07968771809688} + \mrcpoint{47.55206513030159}{8.458302263852103} + \mrcpoint{47.60652271644701}{8.58564576447632} + \mrcpoint{47.65002478441761}{8.475977737743394} + \mrcpoint{47.8129149100372}{8.621611270810012} + \mrcpoint{47.70405949548734}{8.824753417980977} + \mrcpoint{47.57118357939037}{9.373387060586875} + \mrcpoint{47.57763968687206}{9.783024034250792} + \mrcpoint{47.46598581489455}{10.09335967295321} + \mrcpoint{47.28014625489598}{10.22678291669482} + \mrcpoint{47.32098723021947}{10.40092026792467} + \mrcpoint{47.52413897927237}{10.53589647271817} + \mrcpoint{47.5130331145614}{10.94403341747166} + \mrcpoint{47.39097338968944}{11.04734763681045} + \mrcpoint{47.42252867275465}{11.44170163808758} + \mrcpoint{47.57832219946236}{11.64025530020549} + \mrcpoint{47.65203740659043}{12.2451260343467} + \mrcpoint{47.64005851006706}{12.78135708694006} + \mrcpoint{47.42189293170733}{13.06242166895717} + \mrcpoint{47.68727761120528}{13.13421507093485} + \mrcpoint{47.70570852317097}{12.97737528172392} + \mrcpoint{47.86836520373472}{12.94442906710615} + \mrcpoint{48.06063312315187}{12.76937524145701} + \mrcpoint{48.33220372303314}{13.38497370385176} + \mrcpoint{48.57060635511297}{13.55281830406328} + \mrcpoint{48.51465473490364}{13.78916086481733} + \mrcpoint{48.74889509826911}{13.84448153318651} + \mrcpoint{48.95974762545411}{13.50952525317658} + \mrcpoint{49.37838143356481}{12.77000417129028} + \mrcpoint{49.78495654813383}{12.44617209199484} + \mrcpoint{49.93155217044134}{12.49159565814237} + \mrcpoint{50.13144236663469}{12.24546848540114} + \mrcpoint{50.28771270517358}{12.30810150664619} + \mrcpoint{50.40989390494432}{12.94903619964524} + \mrcpoint{50.65841629251407}{13.3075062965852} + \mrcpoint{50.76329878585482}{13.97452403458363} + \mrcpoint{51.02604511746936}{14.41278607347103} + \mrcpoint{50.79185062876172}{14.80477069337384} + \mrcpoint{51.15202957355457}{14.99270251686064} + \mrcpoint{51.34128169635556}{15.02098384386006} + \mrcpoint{51.53750266315752}{14.74120138252564} + \mrcpoint{51.81924062442433}{14.62724686001225} + \mrcpoint{52.11180711219343}{14.70514397703483} + \mrcpoint{52.39266284958671}{14.60756306378661} + \mrcpoint{52.60597277515545}{14.58725108586684} + \mrcpoint{52.88134471470577}{14.16977248675916} + \mrcpoint{53.14560306739344}{14.4215985570986} + \mrcpoint{53.43447627332744}{14.39440456086107} + \mrcpoint{53.76080228279986}{14.26477636730856} + \mrcpoint{54.07894830697219}{13.84113247149844} + \mrcpoint{54.34144910466647}{13.71477685386829} + \mrcpoint{54.57879841452108}{13.41784866398943} + \mrcpoint{54.38430816973541}{12.55218424463898} + \mrcpoint{54.16285895583508}{12.11170524536321} + \mrcpoint{54.11909611435144}{11.78253136604545} + \mrcpoint{53.9629318241985}{11.23001765303107} + \mrcpoint{54.02548042559235}{10.82100535035693} + \mrcpoint{54.20942342601608}{11.17572026938692} + \mrcpoint{54.42622022041155}{11.04601054827628} + \mrcpoint{54.31534430886417}{10.73027571352005} + \mrcpoint{54.4430955768925}{10.19233706975044} + \mrcpoint{54.8317448735389}{10.00757468096804} + \mrcpoint{54.87986478845961}{9.659528688958062} + \mrcpoint{54.8308224503691}{9.271730840012292} + \mrcpoint{54.92302453288877}{8.571394535898566} + \mrcpoint{54.49119535498197}{8.900730234661252} + \mrcpoint{54.34335254823343}{8.645116397508792} + \mrcpoint{54.22420563732749}{8.880431477246834} + \mrcpoint{53.87404422621243}{8.679945700393079} + \mrcpoint{53.54658560722722}{8.286556227539295} + \mrcpoint{53.7066272365128}{8.034813408953866} + \mrcpoint{53.78031118673399}{7.387421106389351} + \mrcpoint{53.51218238635882}{6.930006752473437} + \mrcpoint{53.25894778199789}{7.171145313101468} + \mrcpoint{52.64374200661974}{6.997019504055286} + \mrcpoint{52.55662475372522}{6.719778263650637} + \mrcpoint{52.38988292317155}{6.970320972580792} + \mrcpoint{51.92299983362206}{6.742905287863996} + \mrcpoint{51.88316670940459}{6.156741607019097} + \mrcpoint{51.79567780329431}{5.98801954642294} + \mrcpoint{51.43928428452571}{6.159613225461791} + \mrcpoint{51.0215877919207}{5.887936542477828} + \mrcpoint{50.79077378475993}{5.983374968822379} + \mrcpoint{50.59470107381249}{6.228393825507839} + \mrcpoint{50.33147032961352}{6.304617231833176} + \mrcpoint{50.15747573005454}{6.092865298740861} + \mrcpoint{49.97845765993797}{6.16527138749146} + \mrcpoint{49.78369815200002}{6.535162836379246} + \mrcpoint{49.45067080157749}{6.378063336429978} + \mrcpoint{49.11701097547841}{6.794068795882435} + \mrcpoint{49.14800972775451}{7.494253217695865} + \mrcpoint{49.03198382192998}{7.640486837553122} + \mrcpoint{48.92859396692077}{8.238456398546767} + \mrcpoint{48.61606185482966}{7.832853167339047} + \mrcpoint{48.05389084062409}{7.510556381211842} + \mrcpoint{47.56795313962416}{7.588782160556193} + \mrcpoint{47.57268069220318}{8.07968771809688} + \end{mrcroute*} + \foreach \city / \name in {munich/M\"unchen, cologne/K\"oln, + hamburg/Hamburg, berlin/Berlin} + { + \mrcmarker{named position=\city,type=knob,fill=red!20,draw=red, + radius=2mm} + \mrcmarker{named position=\city,type=pin,fill=blue!10,draw=blue, + contents=\name} + } +\end{tikzpicture} +\end{dispExample*} + + +\clearpage +%------------------------------------------------------------------------------- +\subsection{Alignment of the Reference Position} + +With \refKey{/mermap/supply/align} the reference position can be aligned +at different map positions. + +\tikzsetnextfilename{examples_alignment}% +\begin{dispExample*}{center lower} +\mrcNPdef{munich}{48.137222}{11.575556} +\foreach \a in {east,center,west,north} { +\begin{tikzpicture} + \mrcmap[type=reference, + named position=munich, + flex reference scale=1 000 000, + source=opentopomap, + tex width=\linewidth,tex height=3cm, + align=\a]{examples_alignment_\a} + \mrcdrawmap + \node[below,font=\fontsize{7pt}{7pt}\sffamily] at (mrcmap.south) + {\mrcmapattribution}; \mrcclipmap + \tikzset{every node/.style={fill=white,fill opacity=0.8,text opacity=1}} + \path[draw] (mrcmap.south west) rectangle (mrcmap.north east); + \ifmrcNPinvicinity{munich}{ + \fill[red] (mrcpos) circle (4pt) node[below] {M\"unchen};}{} + \node[text=red,above left] at (mrcmap.south east) {align=\a}; +\end{tikzpicture} +\par} +\end{dispExample*} + + + +\clearpage +%------------------------------------------------------------------------------- +\subsection{Flexible Zoom} + +Map tiles are only provided at fixed zoom levels with natural numbers, +but the package allows a \refKey{/mermap/flex zoom} with rational numbers. +The flexible zoom is realized by combining a suitable fixed zoom with +an adapted document tile scaling, see \Fullref{sec:flexible_tile_size}. +The following example shows a more or less smooth zoom increase. +The same technique is used by all options starting with |flex|, e.g. +\refKey{/mermap/supply/flex reference scale} +or \refKey{/mermap/supply/flex area fit} +as seen in the examples before. + +\tikzexternaldisable +\tikzsetnextfilename{examples_flex_zoom}% +\begin{dispExample*}{center lower,breakable} +% \mrcsetapikey{thunderforest}{YOUR-API-KEY} % registered key +\mrcNPdef{munich}{48.137222}{11.575556} +\foreach \zz in {7.0,7.2,...,9.0} { +\edef\z{\fpeval{round(\zz,1)}} +\begin{tikzpicture} + \mermapset{flex zoom=\z} + \mrcmap[type=reference, + named position=munich, + source=thunderforest outdoors, + tex width=\linewidth, + tex height=3cm + ]{examples_flex_zoom_\z} + \mrcdrawmap + \mrcclipmap + \tikzset{every node/.style={fill=white,fill opacity=0.5,text opacity=1}} + \node[above,font=\fontsize{7pt}{7pt}\sffamily] at (mrcmap.south) + {\mrcmapattribution}; + \path[draw] (mrcmap.south west) rectangle (mrcmap.north east); + \node[below left=2mm,align=right] at (mrcmap.north east) + {flex zoom=\fpeval{round(\z,1)}\\ scale \mrcprettymapscale}; + \ifmrcNPinvicinity{munich}{ + \fill (mrcpos) circle (2pt) node[below] {M\"unchen};}{} +\end{tikzpicture}\par} +\end{dispExample*} + + + |