Geo stack yang mana untuk wargame strategis online?

8

Saya googling sekitar selama beberapa minggu tetapi saya memiliki beberapa kesulitan untuk mencari tahu di mana untuk memulai proyek saya dan bagian mana dari tumpukan Geo yang tersedia wajib untuk kebutuhan saya.

Saya memiliki latar belakang Java yang kuat, minat untuk Python dan benar-benar terbuka untuk mempelajari beberapa teknologi baru.

Sebagai hobi dan karena dekat dengan pekerjaan saya, saya berencana untuk mengembangkan web strategis MMO web yang sangat didasarkan pada peta interaktif (pada dasarnya untuk menampilkan situasi taktis dan memberikan perintah kepada unit).

Inilah yang saya pikirkan:

  • Geoserver untuk melayani peta dan lapisan.
  • PostGIS untuk menyimpan geodatas.
  • GeoExt untuk ditampilkan di browser
  • Apache Klik sebagai server aplikasi Java (resolusi tempur, manajemen unit)

Saya berhasil menggunakan GeoServer (perang di kucing jantan, lebih mudah sulit) Saya berhasil menginstal PostGreSQL Saya menjalankan beberapa tutorial tentang GeoExt. Saya perlu mengalami Javascript sedikit. Saya bermain dengan Apache Klik untuk melayani halaman dan formulir.

Inilah aliran yang saya pikirkan:

  • GeoServer menyajikan latar belakang dan lapisan peta yang dibangun dari data PostGIS untuk objek statis (Kota, Poin Kemenangan, Wilayah, ...)
  • Apache Click menghasilkan halaman HTML + GeoExt di browser klien.
  • Apache Click mengirimkan perintah CRUD ke PostGIS sebagai respons atas tindakan pengguna.
  • [sesuatu] memperbarui secara teratur PostGIS (pergerakan, resolusi tempur, manajemen karakteristik unit ...)
  • Apache Click menghasilkan file KML secara dinamis untuk memperbarui browser (KML NetworkLink?) Untuk unit yang ditampilkan dengan ikon, zona (rentang, deteksi ...) ...

Dan sekarang, batu bata yang hilang di dinding kecilku:

  • Bagaimana saya bisa menerapkan lapisan "laut / darat". Misalnya, untuk membatalkan gerakan kapal yang lewat di darat? Lapisan GeoServer? Zona yang ditentukan dalam PostGIS?
  • Apakah aliran berikut cukup reaktif untuk memperbarui peta setelah tindakan pengguna: Acara HTML / GeoExt -> proses Apache Klik -> pembaruan PostGIS -> pembaruan lapisan GeoServer -> tampilan HTML / GeoExt

Poin utamanya adalah: di mana data jika saya ingin menggunakannya untuk perhitungan dan pembaruan? Lapisan statis GeoServer atau tabel PostGIS?

Zofren
sumber
2
Selamat datang di GIS SE! Proyek menarik yang Anda miliki di sana. Btw, harap batasi utas Anda pada satu pertanyaan. Anda dapat mengajukan pertanyaan kedua di utas lainnya. Dengan begitu, akan lebih mudah untuk menjawab pertanyaan Anda dan memilih jawaban. Kalau tidak, Anda mengambil risiko jawaban yang benar dan salah pada saat yang sama.
RK
1
OpenLayers mungkin pustaka JavaScript lain untuk dipertimbangkan sebagai bagian dari alur kerja.
djq
Pembaruan: Saya menggunakan Ninja Framework (bukan Apache Click), Leaflet (bukan GeoExt), GeoJSON (bukan KML. Satu-satunya batu bata yang hilang adalah penyedia data mentah. Saya bisa mendapatkan rute dari API publik seperti Mapquest. Tapi saya masih kehilangan penyedia lapisan untuk menangani jenis medan, kota, ...
Zofren

Jawaban:

1

Untuk menjawab Bagaimana saya bisa mengimplementasikan pertanyaan lapisan "laut / darat".

Anda bisa mendapatkan garis pantai dan lapisan laut dari Nature Earth v2 yang baru dirilis.

Mungkin terlalu akurat untuk kebutuhan Anda tetapi dengan beberapa generalisasi Anda akan dapat memuat ini ke postgis dan mendefinisikannya sebagai laut atau darat. Kemudian pergerakan kapal Anda dapat dimuat (http://www.postgis.org/docs/ST_Contains.html) dan sebaliknya dengan pergerakan tangki. Udara akan menjadi jalur yang berbeda dan lebih kompleks karena Anda perlu mengetahui lokasi saat ini dan bekerja di lapangan terbang darat atau kapal induk terdekat untuk pengisian ulang bahan bakar (kecuali jika pengisian ulang udara-ke-udara diizinkan ..)

Semoga berhasil dengan mengembangkan game.

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

Unduh area http://www.naturalearthdata.com/downloads/

Mapperz
sumber
Terima kasih. Saya akan memeriksanya. Jadi Anda mengonfirmasi bahwa layer peta GeoServer tidak "dapat dihitung" dan saya perlu memasukkan data ke PostGIS?
Zofren
Postgis adalah sisi spasial ke postgres (kontrol geometri)
Mapperz
1

Anda kemungkinan akan memperbarui post gis melalui panggilan proses dari server Anda. Untuk satu hal, semua hal geografi tidak diperlukan dan memperkenalkan banyak kebingungan dan itu akan sangat lamban dan prosesor intensif bahkan untuk satu pengguna. Anda bisa memiliki poligon darat dan laut di dalam lapisan dan menambahkan ucapkan kolom +1 di tabel untuk baris laut dan -1 kolom untuk tanah. jika lat kembali dari lokasi kejadian adalah plus atau minus itu akan memicu aturan yang akan membatalkan langkah untuk unit laut atau darat. Anda bisa menggunakan model elevasi digital juga dengan level z sebagai plus atau minus. Game umumnya memiliki medan tetapi itu tidak berarti mereka dibangun menggunakan GIS! Saya akan mempelajari bagaimana mesin permainan yang populer menangani medan dan bagaimana pengembang membuat medan itu, pilih game sumber terbuka favorit Anda. Dalam kasus saya ini adalah BZFlag; )

Lewis
sumber
Saya ingin sedikit lebih dari sekadar lapisan laut / darat. Saya ingin menggunakan ketinggian untuk visibilitas dan jangkauan, sungai dan jembatan, jenis jalan dll. ... Lapisan darat / laut (indah) digunakan di AtWar misalnya, tetapi dengan hanya bergerak garis lurus. Tidak cukup untuk konsep yang saya coba terapkan.
Zofren
Bzflag menyiratkan lapisan air yang tidak dapat dilewati, karena menggunakan OpenGL di mesin yang dimilikinya vr, ketinggian, pemodelan 3d. Hanya saja tidak secara geografis, meskipun saya telah mengonversi gis untuk peta medan permainan
lewis
1
Berikut ini tautan yang mendukung pandangan saya dan mungkin bermanfaat. vterrain.org/Games
lewis