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

  1. Search a place. Type a city, address or landmark and pick it from the list — the map flies to it and drops a pin.
  2. Pin or Path. Keep a single pin, or switch to Path and enter a start and end to draw a road route between them.
  3. Style it. Choose one color and a map mode. Pins, paths and the map palette adapt together; for paths, tune only the thickness.
  4. Frame it. Pick an aspect ratio — square, portrait, story, wide and more. Hover the ratio to preview the exact export bounds.
  5. 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
For AI agents

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=teal

Locations 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
    Landmark pin, dark https://gui.farm/tools/map-generator.png?place=Eiffel+Tower&zoom=16&mode=dark&color=coral
  • Dotted route between two places
    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
    Ring pin by coordinates https://gui.farm/tools/map-generator.png?place=41.8902,12.4922&zoom=16&pin=ring
  • Teal accent, place name
    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

Map of Kyoto embedded in a .gui screen

Kyoto, Japan · 10:00 AM

Rendered .gui screen

Location & framing

ParamAcceptsDefaultNotes
placea place name, or "lat,lng"Center the map and drop a pin. Place names are geocoded; coordinates work too.
zoom1–20auto (13 pin · 12 route)Zoom level. Omit to let the tool frame it.
ratio1:1, 4:5, 9:16, 4:3, 3:2, 16:9 — or square, portrait, story, standard, photo, wide1:1Output shape. Height follows from the width and ratio.
widthpixels (100–2400)1200Output width. Height is derived from the ratio.
specbase64url-encoded MapSpec JSONEscape hatch for exact state that cannot be expressed readably, such as uploaded custom pin images.

Appearance

ParamAcceptsDefaultNotes
modelight, darklightMap theme.
colora color name (blue, coral, …) or hex (#2563eb)blueAccent color for the pin and route.
pinclassic, dot, ringclassicPin style (single-pin mode).
labelsshow, hideshowShow or hide place-name text labels on the map.
labelfree textCaption shown on the pin.

Route (from + to)

ParamAcceptsDefaultNotes
froma place name, or "lat,lng"Route start. Providing both from and to draws a route instead of a pin.
toa place name, or "lat,lng"Route end.
thickness1–125Route line thickness.
linesolid, dottedsolidRoute line style.
pinsboth, hidebothShow or hide the endpoint pins on a route.

Please keep the OpenStreetMap attribution that is burned into every image.