Coder Social home page Coder Social logo

andriyyatsykiv / tacmapgen Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 774 KB

Easy Tactical Map Generation for outdoor competitive sports, with a specific focus on Airsoft and Paintball.

License: GNU General Public License v2.0

Python 100.00%
airsoft geopandas gis hiking orienteering paintball python tactical matplotlib openstreetmap osmnx pandas pyinstaller pysimplegui

tacmapgen's Introduction

GitHub License GitHub top language LoC. GitHub last commit Trello

TacMapGen

Easy Tactical Map Generation for outdoor competitive sports, with a specific focus on Airsoft and Paintball.

Installation and Usage

Download the latest distribution, and run TacMapGen.exe from the main file.

Screenshot GUI

Telling TacMapGen What To Map

In order to tell TacMApGen which area you want mapped, you must identify 2 coordinates that form opposite corners of a rectangle that highlights your area of interest

(IMAGE WIP)

In order to obtain these coordinates, you can go to (OSM source / Google Earth Source WIP) and obtain the coordinates in decimal latitude longitude form. Once you have obtained these, input the respective coordinate in each of the 4 text boxes.

Mapping Points of Interest

TacMapGen can map points of interest located in OpenStreetMaps and those added manually (WIP). In order for the program to automatically recognize and import points from OpenStreetMaps, they MUST be of the type "Node" and must have a "name" tag associated with them. TacMapGen will search only for nodes that have a name tag within your area of interest and render them on the map.

Creating and Saving the Map

You MUST select a "Map Destination" prior to clicking "Generate", that way TacMapGen knows where to put your map image.

Examples

TMJT1 BW

FAQ

"Nothing appears on my map, or some things are missing"

TacMapGen processes the map data included in OpenStreetMaps (OSM) - which is like wikipedia, but for maps. If something doesn't appear, then it likely hasn't been mapped. I strongly encourage you to add the stuff you want mapped into OpenStreetMaps - It's incredibly easy (just dragging and dropping shapes onto sattelite imagery) and it helps the community tremendously.

You can get started here - https://www.openstreetmap.org/

"What things appear on the map?"

TacMapGen parses the OpenStreetMaps (OSM) data for buildings, roads, grassy areas, forests, bodies of water, and points of interest that have a name associated with them (Called "nodes" in OSM with a "name" attribute). If it's not included in the above categories, it won't get mapped.

tacmapgen's People

Contributors

andriyyatsykiv avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

tacmapgen's Issues

Initial ToDo

Fix grid labeling - grid generate via minor=True with the division generated by offsetting the interval by .5 for the major gridlines.
Keypads - Repeat code, but 1/3rds intervals

Randomized point references and grids via randomizing numbers and letters, and picking random code names from a word list for points of interest.

ToDo

Instead of grid gen by grid number, grid gen by grid size

Size (length) to coordinate difference then generate from that

POI and Grid Reference Randomization

Randomize secure grid generation while preserving brevity and legibility via alphabet offset (offset the alphabet character selection parameters by a randomly generated number)

┆Issue is synchronized with this Trello card by Unito

ToDo - Export plot as image

Export plot as image into the directory of the program/project and prompt user for:

  • Format (.svg, .jpg, .png)
  • Resolution, if applicable.

Map preview to GUI

Use the directory generated with the save command to generate a image preview from that file in the directory

┆Issue is synchronized with this Trello card by Unito

ToDo - Refactor to functional programming

Current single wall of code may be hard to read.

Refactor the script to functional programming for ease of use - add functions for collection of user input, data import and cleanup, plot initialization, POI customization, randomization, and final touch-ups and rendering.

ToDo - Grid Security and Randomization

Randomize secure grid generation while preserving brevity and legibility via alphabet offset (offset the alphabet character selection parameters by a randomly generated number)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.