Frage

Ich arbeite an einer Anwendung, die einige gis Sachen beinhaltet. Es würde einige SHP-Dateien werden auf einem opengl Bildschirm gelesen und aufgezeichnet werden. Der aktuelle opengl Bildschirm wird mit der Orthogonalprojektion ab glOrtho() gesetzt und wird bereits eine Anzeige der Karten, Koordinaten von einer einfachen Textdatei mit ..

Nun ist die Karte aufgetragen werden soll, aus einer Shape-Datei gelesen werden.

Ich habe folgende Zweifel:

  1. Wie die WGS84 Projektion der SHP-Datei verwenden, um in meinen vorhandenen glOrtho (von der .prj-Datei der Shape-Datei, WKT-Format lesen) projection..is es eine Umwandlung, die getan werden muss? und wie unterscheidet es sich von dem, was die glOrtho () einrichtet? im Grunde, wie diese Informationen verwenden?

  2. Meine Anwendung muss so eingerichtet werden, dass ich genau das lat / long eines Punktes auf dem map.for zB wissen kann. wenn ich auf X Stadt am schwebt, seine korrekte lat / lang sein könnte fetched.I wissen, dass dies kann mit Open-Source-utils / apis wie GDAL / OGR getan werden, aber ich bin wie die Dokumentation dieser apis verkorkste nicht in immer meine Kopf. Ich habe versucht, einige Beispiele c ++ progs zu finden, aber konnte nicht finden.

  3. Ich habe meine eigene Logik bereits geschrieben, um die Koordinaten von einer Shape-Datei zu lesen, entweder Punkte / Polylinie / Polygon (unter Verwendung von C-shapelib) und aufgetragen über meinen opengl screen.I enthält, fand einen OGR Beispielcode in doc zu lesen eine POINTS Shape-Datei, aber kein für POLYGON shapefile.And das Problem ist, dass diese Anwendung so dynamisch sein muss, dass die Shape-Datei beim Laden, soll es die Projektion des opengl Bildschirm korrekt eingestellt auf der Projektion der SHP-Datei je gelesen werden .. zB WGS84, LCC, EVEREST MODIFIED ... etc. wie dies zu erreichen, von OGR api?

Bitte geben Sie Ihre Eingaben auf dieses Problem .. Ich bin wirklich daran interessiert, diese Arbeit zu machen, aber ich bin nicht den richtigen Start bekommen ..

War es hilfreich?

Lösung

  1. Shape-Datei-Wiedergabe ist ziemlich geradlinig in OpenGL. Sie können "shapelib", eine kostenlose Shape-Datei-Parsing-Bibliothek in C (Google es) benötigen. Verwenden Sie GL_POINTS für Punkt Shape-Datei, GL_LINES für Zeile Shape-Datei und GL_LINE_LOOP für Polygon-Shape-Datei. Stellen Sie Ihre Begrenzungsrahmen Koordinaten zum Ortho.

  2. Was Sie von der .prj Datei lesen ist Projektion info. WGS84 gibt Ihnen lat / long coords (Spherical). Aber Ihr Anzeigesystem ist 2D (rechteckig). So müssen Sie 3D Sphärische Koordinaten zum 2D-Rechteck coords (Dies ist die Bedeutung von Projection) .Projection Arten sind zahlreich, abhängig von dem Bereich von Interesse auf der ganzen Welt (erinnert Projektion verzerrt Bereich / Form / Größe von Features) .Projection konvertieren reichen von polykonische, Modified Everest, NAD, UTM, etc.

  3. Wenn Sie einfach WGS84 benötigen, dann lesen Feld coords Ihrer .sh Datei begrenzen und ordnen sie glOrtho. Wenn Sie irgendeine Projektion (zB: -UTM), dann wandeln Sie Ihre Begrenzungsrahmen coords in Projection coords und dann die neu geplanten Koordinaten zum glOrtho zuweisen. lat / long in jede Projektion für die Umwandlung, können Sie Projektions Bibliotheken wie "Projlib" erfordern oder "GeotransEngine" und etc.

Für weitere Auskünfte können Sie mit mir Kontakt auf dgplinux @ y ein h o o. c o m

Andere Tipps

Bitte lesen Sie die OGR API Tutorial wo Sie lernen, wie Vektordaten lesen von Quellen wie Shape-Datei. Als nächstes überprüfen Sie die OGR Projektionen Tutorial wo Sie erfahren, wie Informationen über Projektion verwenden und räumlichen Referenzsystem aus OGR Quellen lesen.

GDAL / OGR hat alles, was Sie brauchen einen Vektor-Datei zu laden, konvertieren Sie dann alle Koordinaten. Ich verstehe Ihre Frustration mit GDAL als die Dokumentation nicht die größte ist. Wenn Sie eine gute Einführung zur Verwendung der API wollen, schauen Sie sich gdalinfo.c und ogrinfo.cpp in der GDAL Subversion Baum. Quelle kann unter https://svn.osgeo.org/gdal/trunk/gdal.

Wenn das nicht hilft, ich habe zwei einfache Beispiele, die ich verwende Vektor-info zu analysieren und Koordinatenumwandlung zu tun. Sie sind wirklich schlecht, aber sie können helfen, den Punkt.

Vector Loading

Koordinatenumwandlung

Schließlich, wenn Sie nicht vertraut mit GIS-Formaten sind, halte ich würde die ArcGIS Einführung Lesen hier unter Guide Books / Map Projections. Ich kann durch diese Führungen mit Experten trotz keiner Kartographie Ausbildung konkurrieren. Eine weitere gute Quelle ist Wikipedia.

Wenn Sie Zweifel haben, wählen Sie einfach eine UTM-Gitter, mit denen Sie bleiben wollen und verwenden UTM als Koordinatensystem. Es verwendet X (Ostwert), Y (Northing) und Z (Höhe). Der einzige Schlüssel ist ein einziges UTM-Gitter Kommissionierung und sicherstellen, dass alle Koordinaten verwenden, die als Referenz. UTM ist einfach Code zu testen, da es mit Online viele Führer sind. Sie können auch Conversion-Code mit OGR / GDAL oder anderen Ressourcen finden. Andere projizierten Koordinatensysteme lohnen und möglicherweise besser, aber ich würde das betrachten, mit zu beginnen.

Schließlich, wenn alles andere fehlschlägt, nehmen Sie einen Blick auf die NGA Geotrans. Das ist ein großes Test-Tool.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top