Skip to content

Repository files navigation

OpenGolfMap

OpenGolfMap is a self-hostable API that turns OpenStreetMap golf-course data into SVG, PNG, JSON, and ZIP graphics for apps, carts, Raspberry Pi displays, and other golf projects.

Example course graphic generated by OpenGolfMap

I was surprised—and eventually tired—of finding golf-course maps hidden behind expensive APIs and closed services. OpenGolfMap is the small, open alternative: run it yourself, own the integration, and build on OpenStreetMap data.

It is part of OpenCaddie.

Live project demo · GitHub · Releases

Run it

Requires Node.js 22+.

npm install
npm run dev
# http://localhost:3000

Or run a production-like local instance:

docker compose up --build -d
curl http://localhost:3000/api/v1/health

Search for a course in the web app, or ask the API to make a reusable graphic:

curl -X POST http://localhost:3000/api/v1/graphics \
  -H "Content-Type: application/json" \
  -d '{
    "course": "Augusta National Golf Club",
    "fileType": "png",
    "scope": "hole",
    "hole": 1,
    "width": 480
  }' \
  -o hole-1.png

The API docs are available at /docs, and GET /api/v1/courses/:slug/quality reports which holes have the green, tee, fairway, and play-line data needed for a dependable result.

GitHub Pages demo

The project demo is a static overview with examples rendered by OpenGolfMap. It deploys from main when website/ changes. The importer, API, and storage need the self-hosted Node service.

Data and licence

Code and original assets are Apache-2.0; see LICENSE. Course data comes from OpenStreetMap and is subject to the ODbL attribution requirements. Please credit OpenStreetMap when you display rendered maps.

See CONTRIBUTING.md to help improve the renderer or course data workflow.

Contributors

Languages