Ich bin ganz erstaunt, daß ich im Netz keinen Ansatz finden konnte, der mit LaTeX Landkarten sozusagen "per Hand" erstellt, also nicht mit pstricks und Zuhilfenahme externer Dateien, sondern tatsächlich "Punkt für Punkt". Wenn es auch Wahnsinn ist, interessiert mich doch die Methode. Kennt jemand solche Versuche?

Beispiel folgt

gefragt 07 Jul '14, 18:32

ctansearch's gravatar image

ctansearch
(inaktiv)
Akzeptiert: 84%

bearbeitet 10 Jul '14, 15:34

2

Wenn du das Punkt für Punkt / Pixel für Pixel machen willst, dann nimm doch put. Allerdings halte ich das nicht für sinnvoll.

(08 Jul '14, 02:39) Johannes

@Johannes Wobei \put alleine kaum genügen dürfte und spätestens, wenn man die Punkte verbinden will, wird es schwierig (siehe den Hinweis zu Beschränkungen bei \line in meiner Antwort).

(08 Jul '14, 02:47) Ijon Tichy

Es ist wirklich eine Hölle an Kleinarbeit, Ich stelle hier ein sehr einfaches Beispiel ein, wie man es machen kann, ohne Zusammenfassungen von Flächen,Linien etc. Nur damit man sieht, wie es geht.

Open in writeLaTeX
\documentclass[a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{graphicx,xcolor,longtable}
\definecolor{grey}{rgb}{0.7,0.7,0.7}
\newcounter{gridnum}

\newcommand{\midspot}[2]{\put(#1,#2){*}}
\newcommand{\gridspot}[2]{\stepcounter{gridnum}\put(#1,#2){\tiny\thegridnum0}}

\newcommand{\target}[3]{\put(#1,#2){\textcolor{red}{\tiny#3}}}
\newcommand\greyspot[2]{\put(#1,#2){\textcolor{grey}{\tiny*}}}
\begin{document}

\begin{longtable}[c]{ll}
& 
\begin{picture}(0,0)
%koordinaten
\gridspot{0}{10}\gridspot{0}{20}\gridspot{0}{30}\gridspot{0}{40}\gridspot{0}{50}\gridspot{0}{60}\gridspot{0}{70}\gridspot{0}{80}\setcounter{gridnum}{0}\gridspot{10}{0}\gridspot{20}{0}\gridspot{30}{0}\gridspot{40}{0}\gridspot{50}{0}\gridspot{60}{0}\gridspot{70}{0}\gridspot{80}{0}
%koordinaten
\midspot{50}{50}
\greyspot{10}{10}
\greyspot{10}{11}
\greyspot{11}{12}
\greyspot{10}{13}
\greyspot{11}{14}
\greyspot{12}{14}
\greyspot{13}{14}
\greyspot{14}{14}
\greyspot{15}{14}
\greyspot{16}{14}
\greyspot{16.5}{14.5}
\greyspot{16.6}{14.6}
\greyspot{16.9}{14.9}
\greyspot{17}{15}
\greyspot{17.5}{15.5}
\greyspot{18}{15.9}
\greyspot{20}{20}
\greyspot{30}{30}
\greyspot{40}{40}
\greyspot{50}{50}

\greyspot{50}{50}
\end{picture}
\end{longtable}

\end{document}

Ergebnis

Permanenter link

beantwortet 10 Jul '14, 15:34

ctansearch's gravatar image

ctansearch
(inaktiv)

bearbeitet 11 Jul '14, 03:07

@Ijon Tichy Longtable benutze ich dafür, die Karte, bzw Grafik leichter zu positionieren, ist aber eigentlich ein Relikt. Die beiden Längen leftup und rightup dienten mal dazu, nicht immer die Werte einzugeben, sondern die Punkte per Befehl zu verschieben. Habe ich jetzt hier rausgelöscht. Ansonsten ist das nur eine Darstellung des Prinzips.

(11 Jul '14, 03:06) ctansearch
1

Da fällt mir ein eine vorhandene Karte (Rastergrafik) Pixel für Pixel auszulesen und entsprechende Grautöne/Farbwerte mit put zu setzen. Natürlich als Script (Scriptsprache natürlich nach Vorliebe). Ergebnis wäre eine Rastergrafik. Recht viel Arbeit, um aus einer Rastergrafik eine Rastergrafik zu erstellen ...

(11 Jul '14, 04:10) Johannes

@Johannes Wenn Du ein Skript verwendest, missachtest Du wie ich in meiner Antword den Zusatz, dass keine externen Dateien verwendet werden dürfen. Auch die Grafik, die Du mit dem Skript verarbeitest, wäre eine solche externe Datei … Ansonsten hängt alles stark von der Auflösung ab. Ein \greyspot benötigt oben mit pdflatex 55 Word im main_memory. Bei 5Mio Word für main_memory (Einstellung von TeX-Live) genügt das nur für 300x300 Punkte. Man müsste also ggf. noch deutlich optimieren, beispielsweise die Punkte nach Farben sortieren.

(11 Jul '14, 04:40) Ijon Tichy

@Ijon Das war mehr auf den Arbeitsaufwand bezogen, der ja wirklich enorm ist. Irgendwer/irgendwas muss die Datenpunkte ja generieren ...

(11 Jul '14, 06:29) Johannes

@Ijon Tichy Wie gesagt, longtable ist ein Relikt, ich wollte ursprünglich Wegbeschreibung, Daten und Karte jeweils in drei Spalten nebeneinanderstellen. Letztlich wird das ganze ja vermutlich wegen Arbeitsaufwand und Speichergrenzen scheitern, aber mir ging es zunächst um die Methode. man kann perspektivisch auch Objekte erstellen(das heißt, put-Befehle zusammenfassen, aber das mindert den Speicheraufwand wohl nicht.) Vielleicht baue ich heute Abend noch ein schöneres Beispiel.

(11 Jul '14, 07:15) ctansearch

@Johannes

Ein mögliches Ziel meiner Überlegungen wäre zum Beispiel, eine Software zu entwickeln, die per GPS-Datensammlung geografische Daten direkt in put-Befehle umwandelt und in winzige Kartenausschnitte umsetzen kann, zuzüglich individueller Ergänzungen. So eine Art GPS-to-LaTeX - Funktion. Angesichts moderner Lösungen scheint das natürlich antiquiert, aber LaTeX ist ja voll von Überraschungen, alles geht irgendwie... und geht auch dann noch, wenn die modernen Lösungen versagen. Ist aber bloss 'ne Idee, wenn es nicht geht, macht's auch nichts.

(11 Jul '14, 19:09) ctansearch

@ctansearch Na das ist doch mal ein Ansatz zur Sinnhaftigkeit. Damit steht auch fest, dass die Werte (0/1 bzw 0...255) irgendwie vorgegeben sind. Das Script entspricht der GPS Software, welche dann eine Textdatei schreibt (vermute ich mal). Diese kannst du dann einlesen und verarbeiten.

(12 Jul '14, 07:16) Johannes
Ergebnis 5 von 7 Alle anzeigen

Einen Ansatz mit xfig hat Gerd Neugebauer in seinem Artikel in DTK 2/2002 erklärt. Der dort verwendeten Ansatz, eine Karte in Polygone zu unterteilen, könnte auch mit reinen LaTeX-Mitteln verfolgt werden. Allerdings ergibt sich bei reinem LaTeX das Problem, dass \line auf bestimmte Steigungen beschränkt ist. Man kann also gar nicht jede Verbindung zwischen zwei Punkten nur mit der picture-Umgebung von LaTeX herstellen. Linien durch unzählige Punkte zu ersetzen, geht ziemlich schnell schief, weil das schnell extrem langsam und speicherintensiv wird. Daher benötigt man in jedem Fall eine Erweiterung wie tikz oder pstricks.

Mit Hilfe von tikz und kann man aber mit der Abpausmethode durchaus grobe Skizzen erstellen. Dazu legt man ein feines Raster über eine Karte und zeichnet dann Polygone und Linien entlang von Referenzpunkten. Zum Schluss entfernt man Raster und Karte und hat eine grobe Skizze, die für einen Überblick durchaus nützlich sein kann. Für einen Stadtplan o. ä. wäre das jedoch erheblich zu aufwändig. Man kann die Abpausmethode auch etwas mehr automatisieren, indem man in einer Kartenanwendung Koordinaten markiert und exportiert und diese dann (ggf. mit selbst geschriebener Software) weiterverarbeitet. Allerdings ist Dir das vermutlich bereits wieder viel zu wenig per Hand.

Eine weitere Alternative wird übrigens in DTK 3/2002 von Rainer Sieger vorgestellt. Jene Methode war eine Zeit lang recht beliebt. Allerdings erzeugt sie keine TeX-Lösung, sondern eine Abbildung, die dann mit \includegraphics geladen wird. Man könnte in dem Fall heutzutage also auch gleich OSM oder Google Maps (wenn die rechtlichen Einschränkungen das zulassen) verwenden.

Am Ende habe ich also keine wirkliche Antwort für Dich, aber für einen Kommentar war es schlicht zu lang.

Permanenter link

beantwortet 08 Jul '14, 02:35

Ijon%20Tichy's gravatar image

Ijon Tichy
4.4k618

bearbeitet 08 Jul '14, 02:36

@Ijon Tichy Danke erstmal für die Antwort. Ich stelle später ein Beispiel ein, nur der Vollständigkeit halber.

(08 Jul '14, 07:45) ctansearch
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×108
×16
×2
×2
×1

Frage gestellt: 07 Jul '14, 18:32

Frage wurde angeschaut: 2,265 Mal

Zuletzt aktualisiert: 12 Jul '14, 07:16