Hi Chris,
The GPS sample first landed on the dev branch last summer and was merged into master later. There were a few tweaks since then, which could explain why it didn’t show up on your side earlier especially if you are on the master branch.
We did want to make it as simple as one-line toggle (such as MapView.MyLocationEnabled = true;), the challenge is there are quite a few knobs people want to customize (icon, accuracy ring, follow-mode, refresh cadence, etc.), so we kept it explicit for now. A simpler API is still on the table.
That’s a great question about GpsMarker.IsVisible and refresh 
-
Pure visibility toggle (no viewport change)
If you only set IsVisible = true/false and nothing else changes, you don’t need to refresh—the marker is a control and its visibility updates immediately.
-
Toggled while the map moved (pan/zoom/rotate) while hidden
If you hide the marker, then the user pans/zooms, and later you set IsVisible = true again, you should force a refresh of the overlay. Otherwise the marker may briefly appear at its last screen transform and only snap to the correct spot on the next redraw (e.g., when the position timer ticks or the user interacts again).
-
Position updates
When the marker’s geographic position changes, we always refresh the overlay so the control reprojects/repositions correctly in the current viewport. That’s why you see an explicit refresh on Position updates.
So in a word, always refresh the overlay when a marker’s position got updated, or the marker becomes visible. Also updating the MapView extent (such as MapView.CenterAtAsync(gps)) will refresh all the internal overlays (including the markerOverlay) as well, that’s why we didn’t specifically refresh the makerOverlay in the code.
I hope that makes sense, let me know if you have any questions.
Thanks,
Ben