2012-02-28 17 views
5

Openstreetmapデータから3Dマップをレンダリングすると、かなりcumbersomeになります。オープンソースの3DエンジンでOpenstreetmapデータからマップをレンダリングしますか?

しかし、世界中の都市を3Dでレンダリングするよりも、要件がそれほど厳しくない場合はどうなりますか?

特定の都市のみを特定の境界で限定してレンダリングすればいいのですが?実際に画面に表示されている建物や道路だけをレンダリングする場合(特に、この手法はゲーム開発に使用されていると聞いています)、レンダリングするポリゴンが多くありません。

私はthisのようなものを実現したいと考えていますが、高さが高くテクスチャのない建物には単純なボックスだけを置いても問題ありません。ですから、基本的には、OSMベースの道路ネットワークと3Dで建物を表す単純なボックスが必要です。

ので、計画には、以下のことができます:

  • 抽出OSMデータを.osmファイルに。
  • このファイルの各建物に「高さ」データを追加します(手動)。
  • マップの3Dビューを、3Dエンジンのある種の.osmファイル(カスタムパーサーが必要)からレンダリングします。

このプランは実現可能ですか? .osmファイルからOSMマップをレンダリングするために私が使用/カスタマイズできるオープンソースの3Dエンジンはありますか? OSMマップをレンダリングするためにカスタマイズすることができるLinux互換の(OpenGL?)3Dエンジンはありますか?

+0

私はレンダリングされた通りを使用し、回転/傾けられたOpenGlレンダラーに興味があります。あなたは成功しましたか? – Patrick

+0

パトリック、私はこのプロジェクトを中断しました。なぜなら、手作業でやるべきことがたくさんあるからです。 – skanatek

答えて

1

OpenStreetMapはほとんどの地域でロットや道路などの物にしか置かれていませんが、個々の建物にはありません。これは前回チェックしたときのものでしたが、関心のあるエリアによって異なります。

私が知っている限り、これを行う方法はありませんが、単純なものそれほど複雑ではありません。簡単な説明:

1 - osm xmlファイルからフットプリントポリゴンデータを抽出します。

2 osm座標がlat-longであるため、たとえばPROJ.4を使用して、任意のデカルト座標に投影します。

3非凸多角形を避けるために三角形分割します。

4 - 境界エッジごとに四角形を生成する三角形ポリゴンを抽出します。

5 - 最後に、生成されたモデルを好きな3Dエンジン、たとえばOpenSceneGraphに挿入するか、OpenGLを使用して自分でレンダリングすることができます。

その後、テクスチャ、モデル化された詳細のように追加したいことが増えるほど、複雑になります。

2

あなたのニーズに適応できるいくつかのオープンソースプロジェクトがあります(下記参照)。ほとんどの場合、必要に応じてうまく動作するはずのOpenGLを使用しています。

私が最初glosmで見てね。それはあなたが望むもののほとんどをしています。あなたはそれのいくつかのスクリーンショットを見ることができますhere

3

OSM2Worldを見てみたいかもしれません。さまざまなファイル形式のOSMデータを読み込んで、建物の高さ、屋根の形状や材質属性、その他さまざまな詳細を考慮して、3Dモデルを計算するコンバータアプリケーションです。 OpenGLビューアが組み込まれたシーンを表示するか、.povや.objのような形式にモデルをエクスポートすることができます。ほとんどのオープンソースのモデラーやエンジンで読むことができます。

エリア内の建物はよくマッピングされている場合は、シーンは次のようになります。

OSM2World rendering

他のいくつかのツールを紹介OpenStreetMapのコミュニティにおける3D development活動の概要は、もあります。

0

多くの都市では、建物の寸法など、Real Estate recordsにオンラインでアクセスできます。

関連する問題