Skip to content

Commit ec9b8fb

Browse files
committed
feat: cartogo project page
1 parent 06f5f47 commit ec9b8fb

28 files changed

+213
-0
lines changed

landing.jpg

536 KB
Loading
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# High-Speed Binary Caching
2+
3+
Sub-second re-renders are achieved through a binary caching system using Go's `gob` format.
4+
5+
## Optimization
6+
- **Binary Serialization**: Near-instant disk I/O compared to JSON or XML.
7+
- **Nominatim Cache**: Stores geocoding results locally to respect rate limits.
8+
- **Data Persistence**: Map data remains cached for future artistic iterations.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Powerful CLI Automation
2+
3+
A tool for designers and developers alike. Fully automatable via command line.
4+
5+
## Basic Usage
6+
```bash
7+
./CartoGo.exe -city "Sydney" -country "Australia"
8+
```
9+
10+
## Batch Processing
11+
Easily scriptable to generate a collection of posters for entire countries or regions using simple shell loops.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# OpenStreetMap Data Pipeline
2+
3+
Fetching map data is handled by a specialized Overpass QL query engine.
4+
5+
## Pipeline Steps
6+
1. **Query Building**: Dynamic BBox queries for roads, water, and greenery.
7+
2. **Fetch & Retry**: Robust handling of API timeouts and server load.
8+
3. **Relation Processing**: Complex multipolygon reconstruction for parks and lakes.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Geocoding Integration
2+
3+
Precise location targeting via the Nominatim API.
4+
5+
## Features
6+
- **Structured Search**: Targets specific cities and countries.
7+
- **Centroid Calculation**: Uses geocoded coordinates as the map center.
8+
- **Radius Tuning**: Allows users to zoom in or out from the geocoded point.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# High-Resolution Print Export
2+
3+
Engineered for the physical world. Export high-fidelity posters ready for professional printing.
4+
5+
## Print Specifications
6+
- **300 DPI**: Standard professional print resolution.
7+
- **Custom Dimensions**: Support for any size (A4, A3, 18x24, etc.).
8+
- **Vector Parity**: Ensures sharp lines and smooth gradients on large scales.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"title": "CartoGo",
3+
"subtitle": "Artistic City Mapping",
4+
"description": "A high-performance Go implementation of the City Map Poster Generator. Generate beautiful, minimalist map posters for any city in the world with 1-to-1 aesthetic parity.",
5+
"backgroundImage": "ankara.webp",
6+
"credits": [
7+
{ "role": "Technical Port & Optimization", "name": "Fezcode" },
8+
{ "role": "Original Project Vision", "name": "Ankur Gupta (maptoposter)" }
9+
],
10+
"buttons": [
11+
{ "label": "See Project", "link": "https://github.com/fezcode/CartoGo", "type": "primary" }
12+
],
13+
"stats": [
14+
{ "value": "1ms", "label": "Cache Access" },
15+
{ "value": "300", "label": "Target DPI" },
16+
{ "value": "17", "label": "Design Themes" }
17+
]
18+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"logo": {
3+
"label": "CartoGo",
4+
"icon": "MapTrifold"
5+
},
6+
"links": [
7+
{ "label": "Home", "link": "/" },
8+
{ "label": "Projects", "link": "/projects" }
9+
],
10+
"cta": {
11+
"label": "See Project",
12+
"link": "https://github.com/fezcode/CartoGo",
13+
"icon": "GithubLogo"
14+
}
15+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# CartoGo Overview
2+
3+
**CartoGo** is a high-performance Go implementation of the original City Map Poster Generator. It is designed for speed, reliability, and 1-to-1 aesthetic parity with the original Python project.
4+
5+
## Project Vision
6+
To generate beautiful, minimalist map posters for any city in the world, leveraging the concurrency and safety of the Go programming language.
7+
8+
## Architecture
9+
- **Language**: Go 1.25+
10+
- **Graphics**: `gg` library
11+
- **Data**: OpenStreetMap (Overpass API)
12+
- **Geocoding**: Nominatim
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Concurrent Performance
2+
3+
Leveraging Go's Goroutines to accelerate the rendering pipeline.
4+
5+
## Go vs Python
6+
- **Speed**: Significant performance uplift over Matplotlib rendering.
7+
- **Type Safety**: Reduces bugs in coordinate transformation.
8+
- **Distribution**: Compiles to a single static binary for easy use.

0 commit comments

Comments
 (0)