オンライン戦略的ウォーゲームのどのジオスタックですか?


8

私は数週間ぐらついていますが、プロジェクトをどこから始めればいいのか、また利用可能なジオスタックのどの部分が私のニーズに必須であるのかを理解するのにいくつかの困難があります。

私は強力なJavaのバックグラウンドがあり、Pythonにいくらか興味があり、いくつかの新しいテクノロジーを学ぶことに完全にオープンです。

趣味として、私の仕事と密接に関連しているため、インタラクティブなマップに基づいてWeb MMO戦略的ウォーゲームを開発する予定です(基本的には戦術的な状況を表示し、ユニットに命令を出すため)。

これが私が考えていたものです:

  • 地図とレイヤーを提供するジオサーバー。
  • 地理データを格納するためのPostGIS。
  • ブラウザに表示するGeoExt
  • JavaアプリケーションサーバーとしてのApache Click(戦闘解決、ユニット管理)

私はなんとかGeoServerをデプロイしました(tomcatでのウォー、簡単は難しい)。PostGreSQLをインストールしました。GeoExtに関するチュートリアルをいくつか実行しました。Javascriptを少し体験する必要があります。Apache Clickを使用してページとフォームを提供しました。

これが私が考えていた流れです:

  • GeoServerは、静的オブジェクト(都市、勝利ポイント、テリトリーなど)のPostGISデータから構築されたマップの背景とレイヤーを提供します
  • Apache Clickは、クライアントブラウザーでHTML + GeoExtページを生成します。
  • Apache Clickは、ユーザーのアクションに応答してCRUDコマンドをPostGISに送信します。
  • [何か] PostGISを定期的に更新します(移動、戦闘解決、ユニット特性管理...)
  • Apache Clickは動的にKMLファイルを生成し、アイコン、ゾーン(範囲、検出...)でユニットを表示するためにブラウザー(KML NetworkLink?)をライブ更新します...

そして今、私の小さな壁に欠けているレンガ:

  • 「海/陸」レイヤーを実装するにはどうすればよいですか。たとえば、陸を通過する船の動きを無効にするにはどうすればよいですか。GeoServerレイヤー?PostGISで定義されたゾーン?
  • 次のフローは、ユーザーアクション後にマップを更新するのに十分な反応がありますか:HTML / GeoExtイベント-> Apacheクリックプロセス-> PostGIS更新-> GeoServerレイヤー更新-> HTML / GeoExt表示

主なポイントは:計算と更新に使用したい場合、データはどこにありますか?GeoServer静的レイヤーまたはPostGISテーブル?


2
GIS SEへようこそ!あなたがそこに持っている興味深いプロジェクト。ところで、スレッドは1つの質問に限定してください。別のスレッドで2番目の質問をすることができます。そうすれば、質問に答えて回答に投票するのが簡単になります。そうでなければ、同時に正しい答えと間違っている答えを危険にさらすことになります。
RK

あなたの2番目の質問については、私は彼らがすでに回答されてたと思うgis.stackexchange.com/questions/30119/... gis.stackexchange.com/questions/30491/... gis.stackexchange.com/questions/22700/...
RK

1
OpenLayersは、ワークフローの一部として検討する別のJavaScriptライブラリである可能性があります。
djq

更新:私は、Napja Framework(Apache Clickの代わりに)、Leaflet(GeoExtの代わりに)、GeoJSON(KMLの代わりに)に行きました。欠けているレンガは生データプロバイダーだけです。MapquestなどのパブリックAPIからルートを取得できます。地形プロバイダー、地形タイプ、都市などに対処するために欠場
Zofren

回答:


1

「海/陸」レイヤーの質問にどのように実装できますかという質問に答えるには。

最近リリースされたNature Earth v2から海岸線と海層を取得できます。

ニーズに対しては正確すぎるかもしれませんが、一般化すると、これをpostgisにロードして、海または陸として定義することができます。その後、あなたの船の動きを封じ込めることができます(http://www.postgis.org/docs/ST_Contains.html)。空気は別の経路となり、より複雑になります。現在の場所を把握し、最寄りの陸上飛行場または空母に燃料補給を行う必要があるためです(空対空の燃料補給が許可されていない場合)。

ゲームの開発に頑張ってください。

http://www.naturalearthdata.com/blog/miscellaneous/natural-earth-v2-0-0-release-notes/

ダウンロードエリア http://www.naturalearthdata.com/downloads/


ありがとうございました。これを見てみましょう。GeoServerマップレイヤーが「計算可能」ではなく、PostGISにデータを入力する必要があることを確認しましたか?
ゾフレン

Postgisはpostgresの空間的な側面です(ジオメトリを制御します)
Mapperz

1

サーバーからの手続き呼び出しを通じて、投稿のGISを更新する可能性があります。1つには、すべての地理的なものは必要ではなく、多くの複雑さをもたらし、1人のユーザーであっても非常に遅延し、プロセッサに負荷がかかります。レイヤー内に陸と海のポリゴンを作成し、海の行には+1列、陸には-1列を追加できます。ロケーションイベントから返された緯度がプラスまたはマイナスの場合、海または陸のユニットの移動を無効にするルールがトリガーされます。デジタル標高モデルを使用して、zレベルをプラスまたはマイナスにすることもできます。通常、ゲームには地形がありますが、それはGISを使用して構築されているという意味ではありません。私は、人気のあるゲームエンジンが地形を処理する方法と、開発者が地形を作成する方法を研究し、お気に入りのオープンソースゲームを選択します。私の場合はBZFlagです。)


海と陸のレイヤーだけではなく、もう少し欲しかった。可視性と範囲、河川や橋、道路のタイプなどに高さを使用したいと思います。陸/海レイヤーは、たとえば(美しい)AtWarで使用されていますが、直線移動のみです。私が実装しようとしている概念には不十分です。
ゾフレン2013

Bzflagは、VR、高さ、3Dモデリングを備えたエンジンでopenglを使用するため、通過できない水層を意味します。ただし、地理的なものではありませんが、ゲームテレインマップ用にGISを変換しました
ルイス、2013

1
これは私の見解をサポートするリンクであり、役立つかもしれません。vterrain.org/Games
ルイス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.