Transform your geographic data into interactive maps in seconds.
A simple desktop tool that converts tabular data with coordinates into interactive web maps. Runs completely offline, your data never leaves your machine.
Install in 2 minutes:
πͺ Windows
# Right-click install_windows.ps1 and select "Run with PowerShell"
# Or from PowerShell:
powershell -ExecutionPolicy Bypass -File install_windows.ps1Then double-click "GeoMapper Pro Web" on your Desktop.
π macOS
chmod +x install_macos.sh
./install_macos.shThen open "GeoMapper Pro Web" from ~/Applications.
π§ Linux
chmod +x install_linux.sh
./install_linux.shThen run geomap-web or find "GeoMapper Pro (Web UI)" in your applications menu.
π¨ Beautiful Web Interface β Drag-and-drop files, no coding required
π Multiple Formats β CSV, Excel, SQLite, JSON, GeoJSON, Parquet, GPX, KML
π― Smart Auto-Detection β Automatically finds latitude/longitude columns
πΊοΈ 6 Map Styles β Default, satellite, dark, light, terrain, toner
π₯ Advanced Visualizations β Markers, heatmaps, clustering, route lines
π¨ Color Coding β Categorize markers by any column
π€ Export Options β Download as HTML, GPX, or KML
π 100% Offline β Runs locally, your data stays private
π₯οΈ Cross-Platform β Windows, macOS, and Linux installers included
β‘ No Limits β Handle unlimited data points
The CSV upload workflow automatically detects latitude/longitude columns and renders an interactive map with popups, clusters, or heatmaps.
GeoMapper Pro supports GPX route files with optional line connections, smoothing, clustering, and alternate basemaps such as Terrain, Dark Matter, and more.
| Feature | GeoMapper Pro | Google My Maps | GPS Visualizer | Kepler.gl |
|---|---|---|---|---|
| Works offline | β | β | β | β |
| Data stays private | β | β | β | β |
| No account required | β | β | β | β |
| Simple interface | β | β | β | |
| Heatmaps | β | β | β | β |
| Desktop app | β | β | β | β |
| Setup time | 2 min | 5 min | Instant | 10+ min |
| Learning curve | Low | Low | Medium | High |
Perfect for:
- π₯Ύ Hikers & cyclists visualizing GPS tracks
- π’ Businesses mapping locations & territories
- π Real estate professionals plotting properties
- π¬ Researchers analyzing field data
- π Anyone who values data privacy
Launch the beautiful web UI:
geomap-webYour browser opens to http://localhost:5000 with a drag-and-drop interface.
For scripting and automation:
# Basic usage
geomap locations.csv
# Advanced options
geomap track.gpx --connect-lines --style terrain --export-kml output.kmlπΊοΈ Basic Map
geomap stores.csvCreates a simple map with markers for each location.
π₯ Heatmap
geomap crime_data.csv --heatmapPerfect for density visualization.
π Clustered Markers
geomap cities.xlsx --clusterGreat for large datasets β markers group when zoomed out.
π¨ Color by Category
geomap restaurants.json --color-by cuisine_typeEach category gets a different color.
π£οΈ Route Visualization
geomap delivery_route.csv --connect-lines
geomap hike.gpx --connect-lines --style terrainConnect points to show paths and journeys.
π Dark Mode
geomap properties.xlsx --style dark --clusterPerfect for presentations.
| Format | Import | Export | Notes |
|---|---|---|---|
| CSV | β | β | Most common format |
Excel (.xlsx, .xls) |
β | β | All sheets supported |
| SQLite | β | β | Auto-detects tables |
| JSON | β | β | Standard JSON arrays |
| GeoJSON | β | β | Native geographic format |
| Parquet | β | β | High-performance columnar |
| GPX | β | β | GPS tracks (Garmin, Strava) |
| KML | β | β | Google Earth format |
| HTML | β | β | Interactive map output |
--style default # Classic OpenStreetMap
--style satellite # Satellite imagery
--style terrain # Topographic view
--style dark # Dark mode (great for presentations)
--style light # Minimal light theme
--style toner # High contrast black & whitegeomap <file> [options]
Essential Options:
--style STYLE Map style (default, satellite, terrain, dark, light, toner)
--heatmap Generate heatmap instead of markers
--cluster Enable marker clustering for large datasets
--color-by COLUMN Color markers by column values
--connect-lines Connect points with lines (for routes)
Export Options:
--output FILE Output HTML file path
--export-gpx FILE Export to GPX format
--export-kml FILE Export to KML format
Advanced:
--popup COL [COL] Columns to show in popups
--lat COLUMN Manually specify latitude column
--lon COLUMN Manually specify longitude column
--table TABLE SQLite table name
--validate-only Check data without generating map
--version Show version
Your data needs latitude and longitude columns. GeoMapper auto-detects common names:
Latitude: lat, latitude, y, y_coord, lat_col
Longitude: lon, long, longitude, x, x_coord, lng
name,latitude,longitude,category
Store A,40.7128,-74.0060,retail
Store B,34.0522,-118.2437,warehouse
Store C,41.8781,-87.6298,retailπ‘ GPX and KML files have coordinates built-in β no configuration needed!
If you prefer not to use the installers:
# Clone the repository
git clone https://github.com/applesauce777/geomapper-pro.git
cd geomapper-pro
# Install dependencies
pip install -r requirements.txt
# Run CLI
python geomap.py yourdata.csv
# Run Web UI
python flask_app.py- π Large datasets: Use
--clusterfor 1000+ points to improve performance - β
Quick validation: Run with
--validate-onlyto check compatibility before generating - π― Custom popups: Use
--popup name address phoneto show only relevant columns - π Self-contained: Generated HTML files are completely standalone β share directly or embed in websites
- π Format conversion: Use as a converter between CSV, GPX, and KML formats
"Could not auto-detect coordinate columns"
Your column names might not be recognized. Manually specify:
geomap data.csv --lat your_lat_column --lon your_lon_column"No valid coordinates found"
Check your data:
- Latitude must be between -90 and 90
- Longitude must be between -180 and 180
- Look for missing values (NaN, empty cells)
- Verify coordinates are in decimal degrees, not DMS format
Web UI won't start
- Make sure port 5000 is available
- Check Flask is installed:
pip install flask - Try running manually:
python flask_app.py
Map appears empty
- Verify coordinates are in decimal degrees format (e.g.,
40.7128, not40Β°42'46"N) - Check if latitude and longitude are swapped
- Run
--validate-onlyto see what GeoMapper detects
Contributions are welcome! Feel free to:
- π Report bugs
- π‘ Suggest features
- π§ Submit pull requests
- β Star the repository if you find it useful!
MIT License - see LICENSE.md for details.
If GeoMapper Pro saved you time or helped with your work, consider buying me a coffee!
Built with:

