Geo stack nào cho một wargame chiến lược trực tuyến?


8

Tôi đang loay hoay trong vài tuần nhưng tôi gặp một số khó khăn để tìm ra nơi bắt đầu dự án của mình và phần nào trong các ngăn xếp Geo có sẵn là bắt buộc cho nhu cầu của tôi.

Tôi có một nền tảng Java mạnh mẽ, một số quan tâm đối với Python và hoàn toàn mở để tìm hiểu một số công nghệ mới.

Là một sở thích và vì nó liên quan chặt chẽ đến công việc của tôi, tôi dự định phát triển một chiến lược chiến lược MMO trên web dựa trên bản đồ tương tác (về cơ bản để hiển thị tình huống chiến thuật và ra lệnh cho các đơn vị).

Đây là những gì tôi đã suy nghĩ về:

  • Geoserver để phục vụ bản đồ và các lớp.
  • PostGIS để lưu trữ geodatas.
  • GeoExt để hiển thị trong trình duyệt
  • Apache Nhấp làm máy chủ ứng dụng Java (phân giải chiến đấu, quản lý đơn vị)

Tôi đã quản lý để triển khai GeoServer (chiến tranh trong tomcat, dễ dàng hơn) Tôi quản lý để cài đặt PostGreQuery Tôi chạy một số hướng dẫn về GeoExt. Tôi cần trải nghiệm Javascript một chút. Tôi đã chơi với Apache Bấm để phục vụ các trang và biểu mẫu.

Đây là dòng tôi đã nghĩ đến:

  • GeoServer phục vụ các nền và lớp bản đồ được xây dựng từ dữ liệu PostGIS cho các đối tượng tĩnh (Thành phố, Điểm chiến thắng, Lãnh thổ, ...)
  • Apache Click tạo các trang HTML + GeoExt trong trình duyệt máy khách.
  • Apache Click gửi các lệnh CRUD đến PostGIS để đáp lại hành động của người dùng.
  • [một cái gì đó] cập nhật thường xuyên PostGIS (chuyển động, giải quyết chiến đấu, quản lý đặc điểm đơn vị ...)
  • Apache Click tạo các tệp KML động để cập nhật trực tiếp trình duyệt (KML NetworkLink?) Cho các đơn vị hiển thị với các biểu tượng, vùng (phạm vi, phát hiện ...) ...

Và bây giờ, viên gạch bị thiếu trong bức tường nhỏ của tôi:

  • Làm cách nào tôi có thể thực hiện lớp "biển / đất". Ví dụ, để vô hiệu hóa một phong trào tàu đi trên đất liền? Lớp GeoServer? Các khu được xác định trong PostGIS?
  • Luồng sau có đủ phản ứng để cập nhật bản đồ sau hành động của người dùng: sự kiện HTML / GeoExt -> Quá trình nhấp vào Apache -> Cập nhật PostGIS -> Cập nhật lớp GeoServer -> Hiển thị HTML / GeoExt

Điểm chính là: dữ liệu ở đâu nếu tôi muốn sử dụng nó để tính toán và cập nhật? Lớp tĩnh GeoServer hoặc bảng PostGIS?


2
Chào mừng bạn đến với GIS SE! Dự án thú vị bạn có đó. Btw, xin vui lòng giới hạn chủ đề của bạn trong một câu hỏi. Bạn có thể đặt câu hỏi thứ hai trên một chủ đề khác. Bằng cách đó, sẽ dễ dàng hơn để trả lời câu hỏi của bạn và bỏ phiếu cho các câu trả lời. Nếu không, bạn có nguy cơ trả lời đúng và sai cùng một lúc.
RK

Đối với câu hỏi thứ hai của bạn, tôi nghĩ rằng họ đã được trả lời đã gis.stackexchange.com/questions/30119/... gis.stackexchange.com/questions/30491/... gis.stackexchange.com/questions/22700/...
RK

1
OpenLayers có thể là một thư viện JavaScript khác để xem xét như một phần của quy trình làm việc.
djq

Cập nhật: Tôi đã sử dụng Ninja Framework (thay vì Apache Click), Leaflet (thay vì GeoExt), GeoJSON (thay vì KML. Gạch duy nhất còn thiếu là nhà cung cấp dữ liệu thô. Tôi có thể nhận các tuyến từ API công khai như Mapquest. Nhưng tôi vẫn bỏ lỡ một nhà cung cấp lớp để đối phó với các loại địa hình, thành phố, ...
Zofren

Câu trả lời:


1

Để trả lời câu hỏi Làm thế nào tôi có thể thực hiện câu hỏi lớp "biển / đất".

Bạn có thể có được đường bờ biển và lớp biển từ Nature Earth v2 được phát hành gần đây.

Nó có thể quá chính xác cho nhu cầu của bạn, nhưng với một số khái quát, bạn sẽ có thể tải cái này vào postgis và định nghĩa nó là biển hoặc đất liền. Sau đó, chuyển động tàu của bạn có thể được chứa (http://www.postgis.org/docs/ST_Contains.html) ngược lại với chuyển động của xe tăng. Không khí sẽ là một con đường khác và phức tạp hơn khi bạn cần biết vị trí hiện tại và tìm ra một sân bay hoặc tàu sân bay gần nhất để tiếp nhiên liệu (trừ khi được cho phép tái nạp nhiên liệu trên không ..)

Chúc may mắn với việc phát triển trò chơi.

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

Khu vực tải xuống http://www.naturalearthdata.com/doads/


Cảm ơn bạn. Tôi sẽ xem xét điều này. Vì vậy, bạn xác nhận rằng các lớp bản đồ GeoServer không "tính toán được" và tôi cần nhập dữ liệu vào PostGIS?
Zofren

Postgis là phía không gian của postgres (điều khiển hình học)
Mapperz

1

Bạn có thể sẽ cập nhật bài gis thông qua các cuộc gọi tiến hành từ máy chủ của bạn. Đối với một điều tất cả các công cụ địa lý là không cần thiết và giới thiệu rất nhiều sự tuân thủ và nó sẽ rất lag và xử lý chuyên sâu cho ngay cả một người dùng. Bạn có thể có một đa giác đất và biển trong một lớp và thêm một cột +1 trong bảng cho các hàng biển và cột -1 cho đất liền. nếu lat lon trở về từ một sự kiện địa điểm là một điểm cộng hoặc trừ đi thì nó sẽ kích hoạt một quy tắc sẽ làm mất hiệu lực di chuyển cho đơn vị biển hoặc đất liền. Bạn có thể sử dụng mô hình độ cao kỹ thuật số cũng như với mức z là cộng hoặc trừ. Các trò chơi thường có địa hình nhưng điều đó không có nghĩa là chúng được xây dựng bằng cách sử dụng GIS! Tôi sẽ nghiên cứu cách một công cụ trò chơi phổ biến xử lý các địa hình và cách các nhà phát triển tạo ra các địa hình đó, chọn trò chơi nguồn mở yêu thích của bạn. Trong trường hợp của tôi, đó là BZFlag; )


Tôi muốn nhiều hơn một chút so với chỉ lớp biển / đất liền. Tôi muốn sử dụng độ cao cho tầm nhìn và phạm vi, sông và cầu, loại đường, v.v ... Ví dụ, lớp đất / biển được sử dụng trong AtWar, nhưng chỉ với các chuyển động thẳng. Không đủ cho các khái niệm tôi cố gắng thực hiện.
Zofren

Bzflag mô phỏng các lớp nước không thể vượt qua, vì nó sử dụng opengl trong động cơ, nó có vr, độ cao, mô hình 3d. Chỉ cần không địa lý tuy nhiên, mặc dù tôi có gis chuyển đổi cho trò chơi địa hình bản đồ
lewis

1
Đây là một liên kết hỗ trợ quan điểm của tôi và có thể hữu ích. vterrain.org/Games
lewis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.