0

OpenStreetMap と OpenLayers を使用してプロジェクトを行っています。現在、私の仕事は、私が持っている OSM ファイルから PostgreSQL にデータを挿入することです。Osmosis (OSM ファイルからデータベースにデータを転送するためのツール) を確認したところ、一例として、「planet ファイルをローカルの PostgreSQL rails port データベースにインポートする」と表示されています。プロジェクトで Ruby on Rails を使用する必要があるということですか? 私は Rails を知りません。それを学ぶには時間がかかりすぎます。PHP を使用してデータベースにアクセスできますか? 私を助けてください。どうもありがとう!

4

2 に答える 2

2

ノード、ウェイ、タグなどを、OpenStreetMap サーバーで使用されているようなデータベース スキーマにインポートできます。最終的に、 Ruby on Railsの移行は、OSM サーバーで使用される最新のスキーマの唯一の真のソースです。しかし、スクリプト/contrib ディレクトリ内の Osmosis ディストリビューションにバンドルされているデータベース作成スクリプトを使用して、同様のスキーマでデータベースを作成することをお勧めします。

あるいは、一部のアプリケーションでは、PostGIS で Postgres データベースを有効にして (地理空間関数とデータ型のロードをロード)、これらの型を利用する形式で OpenStreetMap データをロードすることもできます。Osmosis または osm2pgsql でそれを行うことができます。PostGISを参照してください

または、より基本的なアプリケーションについては、.osm 形式を自分で解析することを検討することもできます。osm ファイルには、いくつかの「ノード」要素と「ウェイ」要素が含まれています。これらのそれぞれには、複数の「タグ」要素を含めることができます。「関係」要素もあります。これらは多くのアプリケーションで不要になる可能性がありますが、すべては何をしたいかによって異なります。ノードだけが必要な場合もあります (POI データ アプリケーションの場合)。一部の作業では、データベースを使用せずに PHP 内で解析された .osm ファイルを直接操作することが実行可能である場合がありますが、一般的には意味のある大きな領域のマップ データには適していません。

カテゴリ:PHPにリストされているツールの中に散らばっている便利なコードを見つけることができます。

于 2010-09-10T16:08:11.387 に答える
0

www.openstreetmap.org を開いたときに表示されるインターフェイス/アプリケーションが RoR で記述されていることを知っておく必要があります。データにアクセスするための API (地理コーディング) は、PHP API を介して行われます。したがって、Rails を使用する予定がない場合は、Rails は必要ありません。データベースは気にしません。

ところで、Osmosis の代わりに osm2pgsql があります。これは、Rails の依存関係について何も「言いません」(つまり、前に述べたように、とにかく使用されません)。

于 2010-09-07T08:22:51.683 に答える