Applied a little bit of polish to the overall 3D structure (yes those clouds move). Also snuck in two little easter eggs … let me know if you find them
)
Applied a fair bit of optimisation to mobile so it should work a /bit/ better - cant promise its ok on every device but the few I’ve tested it seems to stand up pretty ok.
The main app isn’t mobile optimised yet, so if you want to try it out on mobile here are a few links to try: Flackwell Heath, Oxford Golf Club, Emmaboda Golfklubb
I found one after some /digging/.
One down two to go ![]()
Hi JW,
I’ve been following this thread with great interest. I’m Robert — rebuilding / reengineering my game after a 27-year break, but also a developer. I’ve registered on FairwayMapper (robert souveraingolf com).
I’m building an application called Souverain Golf PPE — a course management tool that combines a player’s personal carry and dispersion data with hole geometry to run (amongst others) Monte Carlo simulations for shot strategy. The output is hole-by-hole decision making based on the player’s actual statistical profile.
For this to work, I need per-hole polygon data at the resolution FairwayMapper produces — fairway, green, bunker, water. I’ve spent time evaluating every alternative: Golfbert (US-only despite appearances), raw OSM Overpass (quality too inconsistent for real use), and commercial mapping APIs (either dead or prohibitively priced). What you’ve built is the only thing I’ve found that actually solves the quality problem at global scale.
I noticed FairwayMapper is running its own Overpass mirror with API keys. I’d love to have a conversation about whether developer access to that would be possible — either as a formal arrangement or as part of a mutual contribution model where I continue mapping courses the app will cover.
Happy to share more about the project if useful. Either way, what you’re building is exactly what the golf data ecosystem has been missing.
Robert
Hi Robert! I think you are also looking for a vector schema for all the golf features you are interested in and then generate your own tiles, to reduce the amount of hits to an overpass instance, but that’s only my guess and to only export only on the subbset that is courses, which we can get from Fairwaymappers code, great to not have to reinvent the wheel for detection but still be able to apply your own style etc. I have had a thought to make an open source schema and vector style for like high zoom levels. In a dream world scenario the R&A and USGA would have some compute laying around to make daily updates or something to these tiles:)
EDIT: I linked previous a new docker container which you can use to run your own overpass query, not trying to speak for Fairwaymapper himself, but It feels weird for an open source project to have the infrastructure to be hammered of an mirror for souveraingolf which will be an commercial product in my mind.
Hi Hugo,
Thanks for the context. The current implementation caches per course with a 30-day TTL, so Overpass load is minimal - but noted on self-hosting for when the scale warrants it.
Still waiting to hear from JW directly.
Enjoy your day!
Regards, Robert
Hey @Souverain_Golf sounds like a fun project!
I think its important to point out, that fairwaymapper does not compute anything on its own, nor does it hold its own ‘master’ database other than to temporarily save user edits, track achievements and other relatively inconsequential data. Everything is derived from two primary sources:
- OpenStreetMap data via the Overpass instance you’ve correctly identified is run by me, behind a proxy with API keys.
- LIDAR tile data sourced from https://mapterhorn.com/
To support the funding of the core mapping project (server costs etc come directly out of my pocket unsurprisingly), I am playing with some ideas in the background. One of those certainly could be access to a tailored API which returns what you’re looking for, but I have also considered making the API key implementation more robust and offering overpass access for a small fee (similar to the likes of geofabrik). It’s been a bit of a side-consideration up to this point though honestly. This project exists to supplement and enhance OSM data first and foremost. FM was born out of my frustration with the inaccuracy and expense of some of the commercial solutions you’ve mentioned. I don’t want FM to join that list ![]()
I’m happy to provide you with a development key to my overpass instance as a fellow golf project, particularly if you’re caching the data for 30 days. Drop me a message and I’ll send you the details.
Hi JW,
thank you for the generous offer. I’d love to take you up on the development key.
My app caches all course data for 30 days with a TTL-based refresh, so Overpass load will be minimal. I’ll also look at mapterhorn.com for the elevation layer.
Happy to share progress and be a reference user as you think through the API roadmap and will provide you with a user account on my platform for you.
Best, Robert
Great, the 3D viewer performs much better now. When I am trying to observe the elevation changes I usually want to angle the camera close to the ground becuase the elevation changes are not that drastic and it goes straight through the model - would adding collision with the camera be possible/limit? I put the 3D Viewer in front of some people and some said that the glide animation could been a little slower, just for older eyes to take it in better.
I checked out the 3D viewer and it has issues in rendering the 14th hole correctly in Emmaboda Golfklubb. There are trees in the fairway, rough and green from this multipolygon:
- I have gone over all the relations and members and I think it is up to standard, as of Relation:multipolygon - OpenStreetMap Wiki but I could be wrong.
- To the left there is a “waste area” with course sand - which I just tagged as natural=sand, maybe show “waste areas” too with for example sand?
- WOW! I just relized it is possible to see the elevation data in the editing mode by toggling the cube button in the right toolbar, “Toggle 3D” great! But I feel like its a little bit restrictive in the amount of degrees one can tilt the camera to get value of that - you need almost the camera in level of the ground to be able to make out elevation changes.
- Forgot to mention it in the last post, great to have full feature tag editing support if one would want to edit it! Is the suggestion part powered by openstreetmap/id-tagging-schema?
- Would also be great to dicern with red poles/markers/yellow poles/maerks on the nodes on penalty areas (formerly known as water hazard), depending on what kind of penalty area it is (I updated the wiki in regards to Tag:golf=lateral_water_hazard - OpenStreetMap Wiki (which often times it is what should be used today (red markers)) Tag:golf=water_hazard - OpenStreetMap Wiki - and add those different water tags in the fairwaymapper UI. TLDR; we are stuck with the old naming in the database of water hazard, which refers to the color of the markers of the Penalty Area, but by the offical sources it is named Penalty Areas in all rules etc.
- Restrooms can also be mapped as inline nodes on a building, for example Node History: 12045266892 | OpenStreetMap
- I suggest adding (drinking_water=yes man_made=water_tap) Tag:man_made=water_tap - OpenStreetMap Wiki to the map, always good to have.
- If a car park is acces=private, (for example staff parking) maybe not place a pin on it to highlight it in the 3D map to not encourage visitors parking there.
- Stopping the camera from getting ‘inside’ the disc is technically possible, but due to the elevation differences on some course represents a bit of a pandoras box of problems to work around. The way the disk is rendered, there is no ‘base’ level as such, rather we start with a flat plane, and then the elevation indents it as it needs to. For the time-being camera controls will stay as-is - I may revisit this in the future but its not a big enough headache to invest a lot of time in.
- 3D viewer now has adjustable speed control for the flythroughs 0.5x should give the desired effect.
- natural:sand without golf:bunker now renders on the 3D map with a scrubland/waste styled texture
- Bug with 14th hole fixed
- Feedback on multipolygon - thank you! Reassuring.
- 2D viewer now has greater camera control depth so you should be able to get nice and low.
- Tag editing support - suggestions are fully driven by the id-tagging-schema
- Agree on feedback RE: private parking labels - they will no longer show
- Noted on feedback re boundary markings, penalty areas, restrooms, taps - will consider!
- 2D viewer now has Azure Maps, plus the Editor Layer Index available (via GitHub - osmlab/editor-layer-index: A unified layer index for OSM editors. · GitHub ) - although I note a number of them throw CORS errors at the moment so YMMV. @SimonPoole I was talking to someone else who mentioned Vespucci uses these, can you possibly provide some insight as to how I should correctly implement this from a permission perspective in FM - I noticed in the FAQ.md there was some waiver documents but I’m not sure if thats the right path?
Edit: easter eggs still to be found .. the secrets are in your keyboard!
Nothing special is required from your side if the imagery sources are used for editing OpenStreetMap (I would note that we do not have such permission for Azure maps due to excessive can kicking, but that is a different topic). Or put differently the only things that are guaranteed is that we either have explicit permission to use the source for editing or it is already licensed on suitable terms to allow editing. There are some layers that require an API key and that it be kept as confidential as possible (aka not on public display in the repo) and there are some which are geofenced. You probably need to talk to @tyr_asd wrt obtaining any API keys.
If you want to use any of the sources as a general purpose background you are on your own, we used to keep an indication of the licence in the data but now days you will have to research the terms yourself.
I discovered another way courses is structured in while I was importing golf features in my new project where I try to generate PMtiles for golf features and a style: HuggeK/golfTiles
Changeset: 183114635 | OpenStreetMap (Its in Swedish but I have summarized it below:)
Some courses consists of “loop” of say three 9-holes which is rotated each day to form a 18-holes and 9-hole. Due to the nature OSM it is not feasible to record the info in the database of what loops makes up the courses for just today.
I noticed that @OpenCourseMaps had thought on that when he made the UI for multiple courses. I will try to update a section on the wiki what would be the best practice to avoid writing ref=”1 - LoopName” where ref= should just represent one thing and that is the hole number. See why it is not a good idea to represent two kinds of information in one tag value: Multiple values - OpenStreetMap Wiki. I would suggest that we tag golf:loop=“NAMEOFTHELOOP” on each hole which is part of this “loop”.
I also updated the wiki with more info in regards to multiple courses inside of a facility: Tag:leisure=golf_course - OpenStreetMap Wiki
EDIT: I added a section under Tag:route=golf - OpenStreetMap Wiki explaining “loops”
Tried FairwayMapper for the first time today. Really nice editor. Some UX feedback about stuff that confused me as a first time user (and non golfer):
-
The “Exit Course” button I wouldn’t expect next to the draft / publishing flow on top right but next to the selected course infobox on top right. Also there should be a confirmation before moving away, particularly if I have edited the course. Too easy to lose changes otherwise.
-
The info dialog for editing a hole: “Stroke index” is the same as “Handicap”? Maybe use both terms to label this field. “Yards” I found confusing. Is this the “hole length” / “distance”? Again maybe offer multiple terms as terminology seems to vary even within the English language. Also clarify if this field expects metres or yards and to make it super clear even have a unit dropdown next to this field
-
When selecting a center line on the map the top info pill shows “Center Line Hole 4 · 4 · 521 yds” - Why is the hole number shown twice? If the hole doesn’t have a name just showing the number “Hole 4” here should suffice.
-
It’s odd to see the most popular object people associate with golfing - the actual hole - mapped as golf=pin showing up as “Other” when selected in the editor.
-
Undo button on the hovering toolbar on top right did partially work: I can see undo actions being added to the action stack, but the editor screen still show the added objects that were undone

-
contact:-prefixed contact details like contact:email, contact:phone, contact:website don’t show up in the course infobox. Only the email, phone, website tag values do.
Also there seem to be two modes for FairwayMapper:
- Find / select golf course
- Edit golf course
In the first and initial mode the screen contains many distracting elements that only get enabled in the second mode. Here’s what I would suggest to remove (and add as a text to the left) in the “find” mode:
Great feedback @Claudius_Henrichs thank you very much!
- Exit Course now behaves the same way as if you search for a course and navigate away - you’ll get a warning if you’ve made edits. Forgot to add that logic to the button

- I’ve experimented with moving the exit course button to the left side below the course name, I agree it makes more sense here.
- Stroke Index and hole Handicap are the same thing - OSM uses the tag Handicap, but golfers typically know it better as Stroke Index (at least, in the UK they do - admittedly I’m being presumptuous here - perhaps it should be a user definable option on initial signup - I’ll look into doing that going forward.
- Yards = hole length/distance yes.
- The ‘Center Line Hole 4 4 521 yds’ - wrong definition in the code - it should have listed the par tag value rather than the ref= tag twice - this has now been fixed.
- golf=pin is a good point - fixed now.
- Undo button - center line was missing from undo render logic - fixed now.
- Added some logic to handle the contact: prefix tags.
- Fair point on the distracting elements, when a course is not selected, they are completely hidden now.
Unrelated to feedback
- Fixed some issues with multipolygons (mainly in .osc export and added functionality in the features tab)
Oh yeah, almost forgot. Introduced FairwayMapper Stats - an infrequently updated stats overview for global golf on OpenStreetMap.
Includes an interactive drill-down table so you can check areas you’re working on for overall perceived ‘completeness’.
Feedback welcome and thanks to @dsfarc for the idea!
Great! Just curious about where the reference data comes from? I will link to it on the leisure=golf_course page on the wiki.
I think it is important that we use the terminology of “facility name” instead of course name when we are refering to the name tag on leisure=golf_course areas, see Key:golf:course:name - OpenStreetMap Wiki for the name of the course and how we map courses vs golf course facilites which are leisure=golf_courses on the subsection: Tag:leisure=golf_course - OpenStreetMap Wiki#Courses in a facility which I have added more info on this week when I consumed the data in golfTiles.
I was curious and wanted to try out the editor on a golf course near me. But because of a browser check, I can’t open the editor.
I’m using the latest version of the Microsoft Edge browser on a 4K monitor with a resolution of 3840x2160 pixels. The application works in my fallback Firefox.
I’d like to add a few things that come to mind off the top of my head:
- In Baden-Württemberg, there are official 20-cm-resolution images. However, these aren’t available for selection; instead, French IGN images are offered, but they don’t work at all in Germany.
- The Publish button is disabled, at least until you click “Save Draft.” This isn’t intuitive for me.
- The Draft Save dialog says, “You can also use Export .osc or Export GeoJSON from the menu to keep a local copy.”
At that point, I wonder, “Where is the menu?” After a few minutes of clicking around, you find the menu under the username. Is everyone familiar with this? - I’m not familiar with the names (especially in English) or, more specifically, the tags. A dialog or Help view with more information, like in iD, or a link to the wiki would be very helpful to me.
- When you zoom in on a region from the overview (world map), map a location there, and then exit using “Exit Course,” the map zooms all the way out again. That’s a little annoying.





