Map design · Privacy · OpenStreetMap

Maps without Google.
From your own server, in your own hand.

The map below loads nothing from an external service — no tile, no font, no script. That is why there is no consent gate in front of it. And because it is drawn in the browser rather than delivered as an image, every layer can be designed. Try the presets.

Choose a style

This site’s own palette — the map as part of the brand rather than a foreign object.

Geodata: © OpenStreetMap contributors (ODbL) · rendered from this server

Why this matters

Three drawbacks accepted because everyone accepts them

The map loads from a third party

An embedded Google map pulls tiles, fonts and scripts from external servers — and your visitors’ IP addresses travel with the request, before anyone has clicked anything.

So it needs a consent gate

Because data goes to a third party, the map may only load after active consent. Someone looking for your address first meets a grey box with a button on it.

And it looks like everywhere else

Same colours, same typography, same motorway shields as every other site. On an otherwise designed page, the map is the one patch that does not belong.

How I build it

Three steps, and then the map is yours

  1. Extract the area once

    I pull the required section from OpenStreetMap once — roads, water, green space, buildings. The result is a file, not a subscription.

  2. Put it on your server

    From then on it sits where your images sit. There is no map service left to fetch anything — and therefore none that could log anything.

  3. Draw it in your palette

    The map is drawn in the browser. Colours, stroke weights and layers live in a style file — the same geometry carries any design that suits your brand.

What else for

A map can do more than “here we are”

Once the map is yours, it can show things a map service has no field for. Both examples below use the same technique as the map above — only different data.

Supply chain and site network

Google Maps knows no relationship between two places — only routes from A to B. Where material comes from, where it is transshipped and where it goes is a statement about your company. That has to be drawable.

Sample data. The places are real, the supply relationships between them are invented.

Geodata: © OpenStreetMap contributors (ODbL) · rendered from this server

Catchment area and travel zones

“I travel this far, beyond that there is a surcharge.” Trades, care services, field service, delivery. The zones are real circles in kilometres — they keep their true size no matter how far you zoom in.

The same local dataset as above, only with zones placed on top.

Geodata: © OpenStreetMap contributors (ODbL) · rendered from this server

What you end up with

Four differences that stick

No third-party transfer

Every request goes to your own domain. There is no external service involved, so there is nothing about one to disclose.

No consent gate

Without a third-party transfer, the reason for the prompt disappears. The map is simply there when someone looks for your address.

The design is yours

No vendor can change how your map looks because they reworked their own design. The style file sits with you.

Lighter than tiles

The section above loads around 240 kB compressed — once. A tiled map fetches the same view as dozens of images and reloads on every zoom.

Honestly

What this approach cannot do

Four limits that belong on the table before the job, not after it.

  • The area is bounded. A few kilometres around a location is the sensible range — not a map you can pan to the next city on.
  • No route planner. “Calculate route” needs a service that computes; that is a different component and a fresh privacy question.
  • No address search box. Fixed points are placed, not looked up.
  • The data has a cut-off date. A new road appears once the extract is pulled again — a small job, but a deliberate one.

Frequently asked

What is usually still open before an enquiry

No. It is a transfer to a third party, so it generally needs consent before it loads and an entry in your privacy policy. That is not a ban — it is effort you can avoid when the map comes from your own server.

From OpenStreetMap. The data is published under the Open Database License, is free to use, and asks for attribution in return — which sits beneath every map.

Every layer is addressable on its own: road classes, water, green space, buildings, rail. Colour, stroke weight and dash pattern for each live in the style file. The four presets above are examples, not a menu — your palette gets entered, not picked.

It depends on scope: a single location is a small item, several branches with their own styling is a project. Tell me what you need to show and you get a number instead of a range.

Usually yes. It needs somewhere to put the file and a place where the map may be drawn. Whether that works in your system is faster to check than to speculate about here.

Show me your location

Send me the address and what the map is for — directions, catchment area, branch network. You get a draft in your palette before we talk money.