1

私はいくつかのGISを含むアプリケーションに取り組んでいます。いくつかの .shp ファイルを読み込んで、opengl 画面にプロットする必要があります。現在のopengl画面は、設定された正投影を使用してglOrtho()おり、単純なテキストファイルの座標を使用してマップを既に表示しています..

プロットするマップは、シェープファイルから読み取る必要があります。

次の疑問があります。

  1. .shp ファイルの WGS84 射影 (シェープファイルの .prj ファイルから読み取ったもの、WKT 形式) を既存の glOrtho 射影に使用する方法..何か変換が必要ですか? また、glOrtho() が設定するものとどう違うのですか?基本的に、この情報をどのように使用するのですか?

  2. 私のアプリケーションは、マップ上のポイントの正確な緯度/経度を知ることができるように設定する必要があります。X都市にカーソルを合わせている場合、その正確な緯度/経度を取得できます.GDAL/OGRなどのオープンソースのユーティリティ/APIを使用してこれを実行できることは知っていますが、これらのAPIのドキュメントが私のものに入っていないので混乱しています頭。サンプルの C++ プログラムを見つけようとしましたが、見つかりませんでした。

  3. ポイント/ポリライン/ポリゴン(C-shapelibを使用)のいずれかを含むシェープファイルから座標を読み取る独自のロジックを既に作成し、opengl画面にプロットしました。 POLYGONシェープファイル。問題は、このアプリケーションが非常に動的でなければならないため、シェープファイルをロードすると、読み込まれる.shpファイルのプロジェクションに応じてopenglスクリーンのプロジェクションを正しく設定する必要があることです..例: WGS84、LCC、EVEREST修正...など OGR APIからこれを達成する方法は?

この問題についてご意見をお寄せください..私は本当にこれを機能させたいと思っていますが、正しいスタートを切ることができません..

4

3 に答える 3

3
  1. シェープファイルのレンダリングは、OpenGL では非常に簡単です。C言語の無料のシェープファイル解析ライブラリである「shapelib」が必要になる場合があります(Google it)。ポイント シェープファイルには GL_POINTS を、ライン シェープファイルには GL_LINES を、ポリゴン シェープファイルには GL_LINE_LOOP を使用します。バウンディング ボックスの座標を Ortho に設定します。

  2. .prj ファイルから読み取るのは投影情報です。WGS84 は、緯度/経度座標 (Spherical) を提供します。ただし、表示システムは 2D(Rectangular) です。したがって、3D Spherical 座標を 2D Rectangular 座標に変換する必要があります (これが Projection の意味です)。Projection の種類は、地球上の関心のある領域に応じて多数あります (投影は、領域/形状/フィーチャのサイズを歪めることを思い出してください)。タイプは Polyconic、Modified Everest、NAD、UTM など、

  3. 単に WGS84 が必要な場合は、.sh ファイルのバウンディング ボックス座標を読み取り、それらを glOrtho に割り当てます。投影がある場合 (例:-UTM)、バウンディング ボックスの座標を投影座標に変換し、新しく投影された座標を glOrtho に割り当てます。緯度/経度を投影法に変換するには、「Projlib」や「GeotransEngine」などの投影ライブラリが必要になる場合があります。

詳細については、dgplinux@ yahoo までご連絡ください。コム

于 2008-12-23T16:21:59.667 に答える
2

Shapefile などのソースからベクター データを読み取る方法を学習できるOGR API チュートリアルをお読みください。次に、OGR ソースから読み取った投影と空間参照系に関する情報の使用方法について学習できるOGR 投影チュートリアルを確認してください。

于 2010-01-24T16:26:55.160 に答える
0

GDAL/OGR には、ベクター ファイルを読み込み、座標を変換するために必要なものがすべて揃っています。ドキュメントが最高ではないため、GDAL に対するあなたの不満を理解しています。API の使用方法を詳しく知りたい場合は、GDAL サブバージョン ツリーの gdalinfo.c と ogrinfo.cpp を参照してください。ソースはhttps://svn.osgeo.org/gdal/trunk/gdalで見ることができます。

それでも解決しない場合は、ベクトル情報の解析と座標変換に使用する 2 つの基本的な例を示します。彼らは本当に悪いですが、要点を理解するのに役立つかもしれません.

ベクトル読み込み

座標変換

最後に、GIS 形式に慣れていない場合は、ここGuide Booksの/の下にある ArcGIS の紹介を読むことを検討してくださいMap Projections。これらのガイドのおかげで、地図作成のトレーニングを受けていなくても、専門家と競争できます。もう 1 つの優れた情報源はウィキペディアです。

疑問がある場合は、使いたい UTM グリッドを選択し、UTM を座標系として使用してください。X (東座標)、Y (北座標)、および Z (高度) を使用します。唯一の鍵は、単一の UTM グリッドを選択し、すべての座標がそれを参照として使用していることを確認することです。オンラインには多くのガイドがあるため、UTM は簡単にコードをテストできます。OGR/GDAL またはその他のリソースを使用して変換コードを見つけることもできます。他の投影座標系は価値があり、より優れている可能性がありますが、最初はそれを見ていきます。

最後に、他のすべてが失敗した場合は、NGA GeoTrans を見てください。これは優れたテスト ツールです。

于 2014-07-07T00:01:24.413 に答える