LaTeX 中的政治地图

LaTeX 中的政治地图

有没有可用于在 LaTeX 中制作政治地图的软件包?例如世界地图或欧洲地图?

答案1

pst-geo包可以处理 CIS 世界数据。它需要序列latex->dvips->ps2df,因为数据是在 PostScript 级别读取的。

\documentclass{article}
\usepackage{pst-map3d}
\definecolor{graygreen}{cmyk}{0.7,0,0.6,0.2}
\definecolor{BlueDark}{cmyk}{1,1,0,0.5}
\pagestyle{empty}

\begin{document}
\begin{pspicture*}(-0.5\linewidth,-0.45\textheight)(0.5\linewidth,0.5\textheight)
\psset{PHI=45,THETA=5,unit=7.5,
       path=Links/texmf-local-generic/pst-geo/data}
\WorldMapThreeD[lakes=false,circlesep=0.25,lakes=false,gridmap=false,
                mapcolor=graygreen!50,bordercolor=red,rivers=false,
                coasts=false,islandcolor=blue]%
\WorldMapThreeD[gridmapcolor=yellow,circles=false,lakes,gridmapdiv=5,france,
                islandcolor=blue,blueEarth=false,
                bordercolor=red,islands=false,borders=false,rivers,coasts,
                coastcolor=blue]%
\psmeridien{2.32}   \psparallel{48.85}
\newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=yellow!50,framesep=0,
        linestyle=none,opacity=0.5}
\input{villesFrance3d}
\newpsstyle{NodeLabelStyle}{fillstyle=solid,fillcolor=red!50,
        framesep=0,linestyle=none,opacity=0.5}
\newpsstyle{psNodeMapStyle}{fillstyle=solid,fillcolor=yellow!50,linecolor=red}
\psset{nodeWidth=0.025\psunit,linecolor=red}
\pnodeMapIIID(10.51667,43.85){Lucques}
\pscircle[fillstyle=solid,fillcolor=green](Lucques){0.025\psunit}
\psdot[dotsize=0.025\psunit](Lucques)
\uput[u](Lucques){\psframebox[fillstyle=solid,fillcolor=yellow!50,framesep=0,
        linestyle=none,opacity=0.5]{\textsf{Lucques}}}
\input{capitales3d}
\psepicenter[circlecolor=red,waves=16,Rmax=2000](0.3333,46.5833){Poitiers}
\end{pspicture*}

\end{document}

在此处输入图片描述

答案2

该代码的作者是Paul Gaborit(fctt)

\documentclass{article}
\usepackage{tikz}
\begin{document}
\newcommand\grilleimage[1]{
  \foreach \x in {0,0.1,...,1.01}{
    \path (#1.south west) -- (#1.north west) coordinate[pos=\x] (x);
    \draw[gray]
    (#1.south west |- x) ++(-.1,0)
    node[left]{\pgfmathprintnumber{\x}} --  (#1.south east |- x);
    \path (#1.south west) -- (#1.south east) coordinate[pos=\x] (x);
    \draw[gray]
    (#1.south west -| x) ++(0,-.1)
    node[rotate=90,left]{\pgfmathprintnumber{\x}} --  (#1.north west -| x);
  }
}
\newcommand\defpt[4]{
  \path (#1.south west) -- (#1.south east) coordinate[pos=#2] (x);
  \path (#1.south west) -- (#1.north west) coordinate[pos=#3] (y);
  \coordinate (#4) at (x |- y);
}
\begin{tikzpicture}
  \node[inner sep=0cm] (image) {\includegraphics[width=10cm]{eu}};
  \grilleimage{image}
  \defpt{image}{0.5}{0.5}{milieu}
  \defpt{image}{0.75}{0}{trois quart bas}
  \fill[red] (milieu) circle[radius=2pt];
  \fill[red] (trois quart bas) circle[radius=2pt];
\end{tikzpicture}
\end{document} 

在此处输入图片描述

在此处输入图片描述

答案3

Inkscape 可以将 svg 文件(例如地图,可能经过修改)转换为 LaTeX,方法是使用一个特定选项进行保存。(通过滚动“另存为”菜单列表很容易找到)这种方法使用 postscript 并需要 pstricks 来编译生成的文件,最好使用命令行选项:pdflatex -shell-escape。

还有一个 python 脚本 svg2tikz,据说可以将 svg 文件转换为 TikZ 代码,但使用它似乎需要更多技能。

http://code.google.com/p/inkscape2tikz/source/browse/svg2tikz/?r=19562fdc36d4eef451219388ce3e9dc3c9c2a492

也可以看看:

http://mirrors.linsrv.net/tex-archive/info/svg-inkscape/InkscapePDFLaTeX.pdf

答案4

通常,您会从外部源导入地图,因为在 Tikz 中绘制“复杂”的地图需要太多工作。一种选择是使用 Inkscape 等对其进行预处理。

确实还有另一种创建高质量地理地图的选择,那就是使用 ncl 或 PyNgl。此功能:

  1. 允许使用所有类型的投影来最大程度地灵活地绘制地图。
  2. 该产品是矢量文件(eps)
  3. ncl 和 Pyngl 都是开源的
  4. 它不仅可以创建地图,而且还可以对数据进行实际预处理和后处理,并将其包含在最终的图形中。
  5. 这里有大量文档以及示例库,您可以从中获得灵感。

我已尝试将其上传到我的云提供商。看看你是否可以下载它。 https://mybox.cyi.ac.cy/public.php?service=files&t=28e78d6a1c6e1eea8233b226d6003b29

ncl画廊:https://www.ncl.ucar.edu/Applications/

PyNgl 画廊:https://www.pyngl.ucar.edu/Examples/gallery.shtml

文档快照: 在此处输入图片描述

亲切的问候,

马可

相关内容