More recently, I have updated http:/cycleplanner.wjst.de with many more custome layers. It’s a bit cumbersome to find the best data sets out there while using it in leaflet is usually straightforward. Openstreetmap items work great with the overpass api which has a bit complicated syntax. Here is an example of an OR (union) query
var fuel = new L.OverPassLayer({ query: "(node['amenity'='fuel'](BBOX);node['amenity'='fast_food'](BBOX);node['amenity'='kiosk'](BBOX););(._;>;);out;" });