0

私の目標は、Postgisデータベースに動的に入力されたデータを使用してGoogleマップにさまざまな形状(ポリゴン、ポイント、ラインストリング)を表示することです(つまり、マップの変更をリアルタイムで確認できます)。座標を解析してグーグルマップに空間構造を再入力する代わりに、postgisですでに提供されている空間構造(形状がラインストリングかポリゴンかなどをすでに指定している)を使用してこれを行う方法を探していました。GoogleMapsAPIがkmlデータ形式と互換性があることを確認しました。そして、postgisデータをkml形式に変換する必要があることを読みました。フォーラムでFWToolsを介してpostgisデータをkmlに変換する実際のプロセスについて読んだことがありますが、役立つものは何も見つかりませんでした。私はkmlを初めて使用しますが、postgis、perl、PHPに精通しています。postgisデータをkmlに変換するプロセスのチュートリアルはありますか?どこから始めればよいですか?助けてくれてありがとう

4

2 に答える 2

4

PostGISを使用してKMLに直接変換できます。

SELECT ST_AsKML(geometry) from MyTable;

ST_AsKMLは、WKT、GML、GeoJSONなどを含むいくつかの出力形式の1つです。

Google Earthで動的データを表示するための一般的なパターンは、NetworkLink要素でKMLを使用することです。リンクをにviewRefreshMode等しくするonStopと、Google Earthはバウンディングボックスパラメータを添付して(おそらくPHPによって提供されるURLに)リクエストを送信します。バウンディングボックスを使用してPostGISデータベースの機能をクエリし、結果をkmlとして返します。これは、機能がたくさんあるが、ユーザーが見ている地域の機能だけを取得したい場合に最適です。

アプリケーションの複雑さによっては、GeoDjangoも確認することをお勧めします。(PostGISに精通していることは大きな有利なスタートです!)

于 2009-10-22T18:37:50.197 に答える
1

次のようなテキスト変換関数を使用して、PostgresDBから空間データのテキスト表現を取得できます。

SELECT AsText(MyGemoetry) from MyTable

次に、文字列を解析し、PostGISジオメトリタイプに応じてさまざまなAPI関数を使用してオブジェクトを作成し、これらのオブジェクトをDOMのような方法でメインのGEプラグインオブジェクトに追加します。

JavaScriptに精通していて、XMLの基本的な知識がある場合は、http://code.google.com/apis/earth/documentation/reference/から始めることをお勧めします。

オブジェクトに一意のIDを指定することを忘れないでください。そうすれば、後でドロップ/変更するためにそれらを見つけることができます。

ここでいくつかのインスピレーションを得て、リンクされた「locator.js」ファイルを表示し、関数PaintSubField(Coord)を見ることができます...これは別の方法で、少し粗雑ですが効果的で、個々の親/子オブジェクトが多すぎることを回避しますと構造

また、サンプルアプリケーションを参照して、「ラピッドプロトタイピング」のコードプレイグラウンドを使用することもできます。

「リアルタイム」では、少なくとも、生成/再描画ルーチンをリンクできるイベントが必要です。

頑張ってMikeD

于 2009-10-22T16:21:11.127 に答える