Map Generator
Pin places by name, connect them with a route, pick one color and mode — then export a clean PNG. Everything runs in your browser.
© OpenStreetMap contributors · tiles by OpenFreeMap
What is the Map Generator?
The gui.farm Map Generator is a free, browser-based tool for turning any place into a clean static map image. Search a location by name, drop a styled pin or draw a route between two points, choose one color and map mode, then export a high-resolution PNG — ready for slides, docs, social posts, app mockups or print.
There's no account, no API key and no billing — map tiles come from OpenFreeMap and geocoding from OpenStreetMap Nominatim. Path previews use road features already loaded in the map view.
Browse all free tools →How to make a map image
- Search a place. Type a city, address or landmark and pick it from the list — the map flies to it and drops a pin.
- Pin or Path. Keep a single pin, or switch to Path and enter a start and end to draw a road route between them.
- Style it. Choose one color and a map mode. Pins, paths and the map palette adapt together; for paths, tune only the thickness.
- Frame it. Pick an aspect ratio — square, portrait, story, wide and more. Hover the ratio to preview the exact export bounds.
- Export PNG. Download a crisp, high-resolution image that matches the on-screen crop exactly.
Frequently asked
- Is the Map Generator really free?
- Yes. It's free to use with no account, no API key and no watermark. Please keep the OpenStreetMap attribution on exported maps.
- Can I use the maps commercially?
- Yes, subject to the OpenStreetMap and OpenFreeMap licences. Attribution to OpenStreetMap contributors is required.
- What image sizes can I export?
- Pick from square (1:1), portrait (4:5), story (9:16), standard (4:3), photo (3:2) or wide (16:9). Exports are high-resolution PNGs sized to the longest side.
- How are routes drawn?
- Routes are resolved by the server from the start and end points, then rendered through the same PNG pipeline used by the editor and the image URL endpoint.
Good for
- Location cards for events, venues and stores
- Travel routes and itinerary graphics
- Slides, reports and case studies
- Social posts and story backgrounds
- App and website UI mockups
- Printable directions and invitations
Generate a map from a single URL
Describe the map with readable params — place, from, to, color, labels, ratio — and the endpoint renders a PNG from that intent. No key, no SDK, no client library: it is one GET. Browser exports and agent-authored URLs share the same render pipeline, so what you see below is exactly what ships.
GET https://gui.farm/tools/map-generator.png?place=Kyoto&mode=dark&color=tealLocations accept a place name (geocoded via OpenStreetMap) or a raw lat,lng pair. Colors accept a named color or a hex value. Providing both from and to draws a server-resolved route instead of a single pin. Encode spaces in place names as + or %20 (e.g. place=Eiffel+Tower). spec is only for state that cannot fit readable params, such as uploaded custom pin images.
Live examples
Each preview is rendered by the endpoint from the URL beneath it.
-
Landmark pin, dark
https://gui.farm/tools/map-generator.png?place=Eiffel+Tower&zoom=16&mode=dark&color=coral -
Dotted route between two places
https://gui.farm/tools/map-generator.png?from=Eiffel+Tower&to=Arc+de+Triomphe&zoom=13&line=dotted&color=blue -
Ring pin by coordinates
https://gui.farm/tools/map-generator.png?place=41.8902,12.4922&zoom=16&pin=ring -
Teal accent, place name
https://gui.farm/tools/map-generator.png?place=Kyoto&zoom=15&color=teal
Drop it into a .gui file
Because the endpoint is a stable image URL, a .gui screen embeds a map as a plain <img> — nothing to download or unzip. The map stays live text an agent can read and edit.
<gui version="0.2" name="Meeting point">
<col w="360" p="20" gap="14" fill="#ffffff" radius="24">
<text value="Where to meet" font-size="19" font-weight="700" color="#111827" />
<img src="https://gui.farm/tools/map-generator.png?place=Kyoto&color=teal&ratio=3:2" w="320" h="213" radius="16" />
<text value="Kyoto, Japan · 10:00 AM" font-size="14" color="#6b7280" />
</col>
</gui>
Where to meet
Kyoto, Japan · 10:00 AM
.gui screenLocation & framing
| Param | Accepts | Default | Notes |
|---|---|---|---|
place | a place name, or "lat,lng" | — | Center the map and drop a pin. Place names are geocoded; coordinates work too. |
zoom | 1–20 | auto (13 pin · 12 route) | Zoom level. Omit to let the tool frame it. |
ratio | 1:1, 4:5, 9:16, 4:3, 3:2, 16:9 — or square, portrait, story, standard, photo, wide | 1:1 | Output shape. Height follows from the width and ratio. |
width | pixels (100–2400) | 1200 | Output width. Height is derived from the ratio. |
spec | base64url-encoded MapSpec JSON | — | Escape hatch for exact state that cannot be expressed readably, such as uploaded custom pin images. |
Appearance
| Param | Accepts | Default | Notes |
|---|---|---|---|
mode | light, dark | light | Map theme. |
color | a color name (blue, coral, …) or hex (#2563eb) | blue | Accent color for the pin and route. |
pin | classic, dot, ring | classic | Pin style (single-pin mode). |
labels | show, hide | show | Show or hide place-name text labels on the map. |
label | free text | — | Caption shown on the pin. |
Route (from + to)
| Param | Accepts | Default | Notes |
|---|---|---|---|
from | a place name, or "lat,lng" | — | Route start. Providing both from and to draws a route instead of a pin. |
to | a place name, or "lat,lng" | — | Route end. |
thickness | 1–12 | 5 | Route line thickness. |
line | solid, dotted | solid | Route line style. |
pins | both, hide | both | Show or hide the endpoint pins on a route. |
Please keep the OpenStreetMap attribution that is burned into every image.