Skip to content

Horse Route Filtering Guide — #326

CRITICAL: All importers must filter for HORSE RIDING routes ONLY NOT general hiking trails, walking paths, or cycling routes


The Problem

Many data sources mix different activity types: - RouteYou has walking + cycling + horse routes (mixed) - OSM has bridleways for walking AND horses (ambiguous) - Tourism websites show "trails" that may not allow horses - Hiking databases include general bridleways

We need ONLY routes where horses are explicitly allowed or designated.


Filtering Rules by Source

RouteYou

INCLUDE:
✅ activity=horseback-riding
✅ activity=horse-riding
✅ type=horse

EXCLUDE:
❌ activity=walking
❌ activity=hiking
❌ activity=cycling
❌ activity=mountain-biking

Importer: import_routeyou.py (filters by activity=horseback-riding)


OSM Bridleways

INCLUDE (HORSE-DESIGNATED ONLY):
✅ way["horse"="designated"]        ← Official horse routes
✅ way["horse"="yes"] + bridleway   ← Confirmed horse paths
✅ way["horse"="permissive"]        ← Allowed for horses

EXCLUDE:
❌ general "bridleway" without horse tag (may be walking-only)
❌ "path" without horse tag (assumed walking)
❌ "track" without horse tag (may be agricultural/4x4)

Importer: import_osm_horse_routes.py (uses horse=designated filter)


Staatsbosbeheer (Netherlands)

INCLUDE:
✅ Routes explicitly labeled "Paardrijden" (Horse riding)
✅ GPX files from reitwegen.nl category
✅ Staatsbosbeheer nature area bridle paths

EXCLUDE:
❌ Wandelroutes (walking routes)
❌ Fietsroutes (cycling routes)

Status: Need to verify which GPX files are horse-specific


FFE GéoCheval (France)

INCLUDE:
✅ Activité: Équitation (Equitation/Horse riding)
✅ Grand Itinéraires: Chemins de cavaliers (Horse trails)
✅ Routes tagged with "horse-riding" or "equestrian"

EXCLUDE:
❌ Randonnée (hiking)
❌ VTT (mountain biking)

Importer: import_ffe_france.py (FFE = equestrian federation only)


Toerisme Vlaanderen (Belgium)

INCLUDE:
✅ Ruiternetwerk (Horse riding network)
✅ Paardrijden routes (Horse riding routes)
✅ Wegen voor ruiters (Routes for riders)

EXCLUDE:
❌ Wandelpaden (walking paths)
❌ Fietspaden (cycling paths)

Status: WFS query needs to filter by horse activity type


KNHS (Netherlands) - After Email Approval

INCLUDE:
✅ KNHS Ruiternetwerk (official Dutch horse network)
✅ All KNHS-designated routes
✅ Regional reitwegen (riding ways)

EXCLUDE:
❌ Any non-equestrian routes

Source: Dedicated equestrian federation = no filtering needed


Routedatabank (Netherlands) - After Email Approval

INCLUDE:
✅ Ruiterroutes (Horse routes)
✅ Routes tagged with "horse" activity
✅ KNHS-affiliated routes

EXCLUDE:
❌ Walking trails
❌ Cycling routes

Status: Need to confirm feature types with Routedatabank approval


Implementation Checklist

  • RouteYou: Filter parameter activity=horseback-riding
  • OSM Horse Routes: Filter horse=designated ONLY ✅
  • Staatsbosbeheer: Verify GPX files are "paardrijden" 🔍
  • Toerisme Vlaanderen: Add activity type filter 🔍
  • FFE France: Confirm API returns equestrian routes only 🔍
  • KNHS: Use official KNHS endpoint (no filtering needed) ⏳
  • Routedatabank: Confirm feature types with approval ⏳

Data Quality Verification

When testing importers, verify:

  1. Route names contain horse-related keywords:
  2. ✅ "Ruiterpaden", "Ruiterroutes", "Paardrijden", "Horse trails"
  3. ❌ "Wandelpad", "Voetpad", "Fietsroute", "Hiking trail"

  4. Route descriptions mention horses/equestrian:

  5. ✅ "voor ruiters", "horse riding", "équitation"
  6. ❌ "for hikers", "walking trail", "pedestrian"

  7. Spot-check coordinates on map:

  8. ✅ Routes pass through horse-friendly terrain (estates, forests, open fields)
  9. ❌ Urban streets, narrow hiking paths, city centers

  10. Exclude suspicious sources:

  11. ❌ "Kinderpaden" (children's paths)
  12. ❌ "Parkwegen" (park paths for pedestrians)
  13. ❌ "Stadswandeling" (city walking tours)

Testing Queries

# Test RouteYou horse filter
curl "https://www.routeyou.com/api/v1/routes?activity=horseback-riding&country=nl"

# Test OSM horse-designated filter
curl -d '[out:json];way["horse"="designated"](bbox:52.5,6.1,53.2,7.1);out;' \
  https://overpass-api.de/api/interpreter

# Test FFE routes
curl "https://geocheval.ffe.com/api/routes?activity=equestrian"

When in Doubt

If a route's activity type is unclear: 1. Check if the source is equestrian-specific (FFE, KNHS, etc.) 2. Look for explicit "horse" tags in metadata 3. Verify via website or tourism board 4. If still unclear: EXCLUDE it (better to miss than to include walking trails)


Success Metrics

Final routes dataset should be: - 95%+ horse-specific (equestrian tags confirmed) - <5% generic bridleways or ambiguous trails - No hiking-only trails - No cycling routes - All routes Google Maps-verifiable as horse-rideable

Example good routes: - "Ruiterroute de Veluwe" (explicit horse route) - "KNHS Ruiternetwerk Noord-Holland" (official network) - "Route d'Artagnan Équestrian Trail" (equestrian federation) - Way[horse=designated] in OSM (explicitly marked)

Example bad routes (EXCLUDE): - "Wandeling door de natuur" (walking trail) - "Drents pad" (unmarked hiking path) - "Voetbalveld route" (park path) - Generic bridleway without horse tag