CINXE.COM

Transitland vs. alternative transit data systems - Interline Technologies

<!DOCTYPE html> <html lang="en" data-color-scheme="system" class="scroll-smooth"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Transitland vs. alternative transit data systems - Interline Technologies</title> <meta name="HandheldFriendly" content="True" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="theme-color" content="#F3A556"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preload stylesheet" href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@300..800&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'" crossorigin> <style>body { --font-headings: 'DM Sans', sans-serif; }</style> <style>body { --font-body: 'DM Sans', sans-serif; }</style> <script type="module" src="https://www.interline.io/assets/built/app.js?v=449a4a06c1"></script> <link rel="stylesheet" type="text/css" href="https://www.interline.io/assets/built/app.css?v=449a4a06c1" /> <script> let preferredTheme = localStorage.getItem('PREFERRED_COLOR_SCHEME') || `system`; document.documentElement.setAttribute('data-color-scheme', preferredTheme); // Global values needed const themeGlobal = { siteUrl: 'https://www.interline.io', currentPage: parseInt(''), nextPage: parseInt(''), nextPageLink: '', maxPages: parseInt(''), lastPage: `` === `` ? true : false, postsPerPage: parseInt('12'), total: parseInt(''), searchJobsFeaturedFirst: false } function hexToRgb(hexColor) { if (hexColor.slice(0, 1) === '#') { hexColor = hexColor.slice(1); } if (hexColor.length === 3) { hexColor = hexColor.split('').map(function (hex) { return hex + hex;}).join(''); } const r = parseInt(hexColor.substr(0,2),16); const g = parseInt(hexColor.substr(2,2),16); const b = parseInt(hexColor.substr(4,2),16); return [r,g,b] } // Get contrast color; function getColorContrast(hexColor) { const rgb = hexToRgb(hexColor); let yiq = ((rgb[0] * 299) + (rgb[1] * 587) + (rgb[2] * 114)) / 1000; const colorContrast = (yiq >= 128) ? 'hsl(0 0% 0%)' : 'hsl(0 0% 100%)'; // return return colorContrast }; function hexToHsl(hexColor) { const rgb = hexToRgb(hexColor); // Make r, g, and b fractions of 1 const r = rgb[0]/255; const g = rgb[1]/255; const b = rgb[2]/255; const max = Math.max(r, g, b), min = Math.min(r, g, b); let h, s, l = (max + min) / 2; if ( max == min ) { h = s = 0; } else { let d = max - min; s = l > 0.5 ? d / (2 - max - min) : d / (max + min); switch(max){ case r: h = (g - b) / d + (g < b ? 6 : 0); break; case g: h = (b - r) / d + 2; break; case b: h = (r - g) / d + 4; break; } h /= 6; } return [Math.round(h * 360),Math.round(s * 100),Math.round(l * 100)] } function setBrandHSL(hex) { const colorHsl = hexToHsl(hex) document.documentElement.style.setProperty('--color-brand-hsl', `${colorHsl[0]} ${colorHsl[1]}% ${colorHsl[2]}%`); document.documentElement.style.setProperty('--color-brand-contrast', getColorContrast(hex)); } setBrandHSL("#F3A556"); </script> <link rel="icon" href="https://www.interline.io/content/images/2024/09/favicon.ico" type="image/x-icon"> <link rel="canonical" href="https://www.interline.io/transitland/compare/"> <meta name="referrer" content="no-referrer-when-downgrade"> <meta property="og:site_name" content="Interline Technologies"> <meta property="og:type" content="website"> <meta property="og:title" content="Transitland vs. alternative transit data systems"> <meta property="og:description" content="Compare Transitland鈥檚 powerful functionality with other mobility data processing systems and sources for GTFS, GTFS Realtime, and GBFS feeds. Compare Transitland vs. GTFS Data Exchange Learn about the history of GTFS Data Exchange and how its key functionality is now available through the Transitland platform. See comparison Compare Transitland"> <meta property="og:url" content="https://www.interline.io/transitland/compare/"> <meta property="article:modified_time" content="2024-09-04T03:44:33.000Z"> <meta name="twitter:card" content="summary"> <meta name="twitter:title" content="Transitland vs. alternative transit data systems"> <meta name="twitter:description" content="Compare Transitland鈥檚 powerful functionality with other mobility data processing systems and sources for GTFS, GTFS Realtime, and GBFS feeds. Compare Transitland vs. GTFS Data Exchange Learn about the history of GTFS Data Exchange and how its key functionality is now available through the Transitland platform. See comparison Compare Transitland"> <meta name="twitter:url" content="https://www.interline.io/transitland/compare/"> <meta name="twitter:label1" content="Written by"> <meta name="twitter:data1" content="Drew Dara-Abrams"> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "publisher": { "@type": "Organization", "name": "Interline Technologies", "url": "https://www.interline.io/", "logo": { "@type": "ImageObject", "url": "https://www.interline.io/content/images/2023/10/Interline-logo-full-1.png" } }, "author": { "@type": "Person", "name": "Drew Dara-Abrams", "image": { "@type": "ImageObject", "url": "https://www.gravatar.com/avatar/4bac2feda69c215e53b72757902c7a5e?s=250&r=x&d=mp", "width": 250, "height": 250 }, "sameAs": [] }, "headline": "Transitland vs. alternative transit data systems", "url": "https://www.interline.io/transitland/compare/", "dateModified": "2024-09-04T03:44:33.000Z", "description": "Compare Transitland鈥檚 powerful functionality with other mobility data processing systems and sources for GTFS, GTFS Realtime, and GBFS feeds.\n\n\n\n\n\nCompare Transitland vs. GTFS Data Exchange\n\n\n\n\n\nLearn about the history of GTFS Data Exchange and how its key functionality is now available through the Transitland platform.\n\n\n\nSee comparison\n\n\n\n\n\n\n\n\nCompare Transitland vs. OpenMobilityData\n\n\n\n\n\nLearn about OpenMobilityData, the website originally known as TransitFeeds, and how it compares to Transit", "mainEntityOfPage": "https://www.interline.io/transitland/compare/" } </script> <meta name="generator" content="Ghost 5.101"> <link rel="alternate" type="application/rss+xml" title="Interline Technologies" href="https://www.interline.io/blog/rss/"> <script defer src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.5/umd/sodo-search.min.js" data-key="7afadadffdaf89f0b9d751f7f4" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.5/umd/main.css" data-sodo-search="https://interline.ghost.io/" data-locale="en" crossorigin="anonymous"></script> <link href="https://www.interline.io/webmentions/receive/" rel="webmention"> <script defer src="/public/cards.min.js?v=449a4a06c1"></script><style>:root {--ghost-accent-color: #F3A556;}</style> <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=449a4a06c1"> <meta name="fediverse:creator" content="@interline@mastodon.social"> <script defer data-domain="interline.io" src="https://plausible.io/js/script.file-downloads.hash.outbound-links.pageview-props.tagged-events.js"></script> <script>window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }</script> <style> footer .is-subitem { margin-left: 1.25em !important; font-weight: lighter !important; } </style> </head> <body class="page-template page-transitland-compare subpixel-antialiased relative overflow-x-hidden bg-bgr text-typ" x-data="{ menuOpen: false }" :class="menuOpen ? 'overflow-hidden' : 'overflow-y-auto'" data-user="visitor" @keydown.escape="menuOpen = false" @keydown.cmk.k="document.querySelector('[data-ghost-search]').click()" x-init="navigator.platform.includes('Win') && document.body.classList.add('is-win')" > <header class="px-4 sm:px-6 text-typ whitespace-nowrap sticky top-0 z-[1000] bg-bgr lg:bg-transparent" data-header x-init="renderSubmenus();window.pageYOffset > 50 ? isScrolledOnload = true : null" x-data="{ isScrolled: false, isScrolledOnload: false }" @scroll.window="isScrolled = (window.pageYOffset < 50) ? false : true;window.pageYOffset <= 50 ? isScrolledOnload = false : null" :class="[isScrolled ? 'is-scrolled' : '',isScrolledOnload ? 'is-scrolled-onload' : '']"> <div class="max-w-container mx-auto py-4 md:py-6 flex items-center justify-center gap-4 relative before:content-[''] before:absolute before:bottom-0 before:left-0 before:w-full before:h-[1px] before:bg-fading"> <div class="flex-1 flex justify-start lg:transition-move duration-300" data-header-brand> <a class="" href="https://www.interline.io" data-brand> <picture data-logo='dark'> <source srcset="/content/images/size/w100/format/webp/2024/11/interline-logo-white-on-transparent-2.png 100w, /content/images/size/w320/format/webp/2024/11/interline-logo-white-on-transparent-2.png 320w, /content/images/size/w640/format/webp/2024/11/interline-logo-white-on-transparent-2.png 600w" sizes="(max-width: 800px) 200px, 320px" type="image/webp" > <img class="h-[var(--logo-h-mobile)] w-[var(--logo-w-mobile)] md:h-[var(--logo-h-desktop)] md:w-[var(--logo-w-desktop)]" loading="eager" srcset="/content/images/size/w100/format/webp/2024/11/interline-logo-white-on-transparent-2.png 100w, /content/images/size/w320/format/webp/2024/11/interline-logo-white-on-transparent-2.png 320w, /content/images/size/w640/format/webp/2024/11/interline-logo-white-on-transparent-2.png 600w" sizes="(max-width: 800px) 200px, 320px" src="/content/images/size/w30/2024/11/interline-logo-white-on-transparent-2.png" alt="Interline Technologies" /> </picture> <picture data-logo='default'> <source srcset="/content/images/size/w100/format/webp/2023/10/Interline-logo-full-1.png 100w, /content/images/size/w320/format/webp/2023/10/Interline-logo-full-1.png 320w, /content/images/size/w640/format/webp/2023/10/Interline-logo-full-1.png 600w" sizes="(max-width: 800px) 200px, 320px" type="image/webp" > <img class="h-[var(--logo-h-mobile)] w-[var(--logo-w-mobile)] md:h-[var(--logo-h-desktop)] md:w-[var(--logo-w-desktop)]" loading="eager" srcset="/content/images/size/w100/format/webp/2023/10/Interline-logo-full-1.png 100w, /content/images/size/w320/format/webp/2023/10/Interline-logo-full-1.png 320w, /content/images/size/w640/format/webp/2023/10/Interline-logo-full-1.png 600w" sizes="(max-width: 800px) 200px, 320px" src="/content/images/size/w30/2023/10/Interline-logo-full-1.png" alt="Interline Technologies" /> </picture> </a> </div> <nav class="relative hidden transition-[width,filter] duration-300 text-sm lg:flex justify-center p-1 border border-brd rounded-theme-lg bg-bgr-opac backdrop-blur" data-nav="desktop" :class="isScrolled ? 'drop-shadow-xl' : ''"> <ul class="flex gap-0.5"> <li class="nav-transitland-platform nav-current-parent flex relative border border-transparent hover:bg-bgr-tone rounded-theme" data-label="Transitland Platform" data-slug="transitland-platform" data-length="20"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/transitland/" > <span>Transitland Platform</span> </a> </li> <li class="nav-intro-to-transitland nav-current-parent flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- Intro to Transitland" data-slug="intro-to-transitland" data-length="22"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/transitland/" > <span>- Intro to Transitland</span> </a> </li> <li class="nav-transitland-apis-for-developers flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- Transitland APIs for Developers" data-slug="transitland-apis-for-developers" data-length="33"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/transitland/apis-for-developers/" > <span>- Transitland APIs for Developers</span> </a> </li> <li class="nav-custom-bulk-transit-data-exports flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- Custom Bulk Transit Data Exports" data-slug="custom-bulk-transit-data-exports" data-length="34"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/transitland/custom-bulk-transit-data/" > <span>- Custom Bulk Transit Data Exports</span> </a> </li> <li class="nav-all-stops-in-the-united-states flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- All Stops in the United States" data-slug="all-stops-in-the-united-states" data-length="32"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/transitland/all-us-stops-bulk-data/" > <span>- All Stops in the United States</span> </a> </li> <li class="nav-compare-transitland nav-current flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- Compare Transitland" data-slug="compare-transitland" data-length="21"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/transitland/compare/" > <span>- Compare Transitland</span> </a> </li> <li class="nav-transitland-plans-pricing flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- Transitland Plans &amp; Pricing" data-slug="transitland-plans-pricing" data-length="30"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.transit.land/plans-pricing/" > <span>- Transitland Plans &amp; Pricing</span> </a> </li> <li class="nav-interline-routing-platform flex relative border border-transparent hover:bg-bgr-tone rounded-theme" data-label="Interline Routing Platform" data-slug="interline-routing-platform" data-length="26"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/routing-platform/" > <span>Interline Routing Platform</span> </a> </li> <li class="nav-intro-to-valhalla flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- Intro to Valhalla" data-slug="intro-to-valhalla" data-length="19"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/valhalla/" > <span>- Intro to Valhalla</span> </a> </li> <li class="nav-valhalla-tilepacks flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- Valhalla Tilepacks" data-slug="valhalla-tilepacks" data-length="20"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/valhalla/tilepacks/" > <span>- Valhalla Tilepacks</span> </a> </li> <li class="nav-global-hosted-valhalla-apis flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- Global Hosted Valhalla APIs" data-slug="global-hosted-valhalla-apis" data-length="29"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://rapidapi.com/interline-technologies-interline-technologies-default/api/interline-global-valhalla-navigation-and-routing-engine/" > <span>- Global Hosted Valhalla APIs</span> </a> </li> <li class="nav-transitland-routing-api flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- Transitland Routing API" data-slug="transitland-routing-api" data-length="25"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.transit.land/documentation/routing-api/" > <span>- Transitland Routing API</span> </a> </li> <li class="nav-resources flex relative border border-transparent hover:bg-bgr-tone rounded-theme" data-label="Resources" data-slug="resources" data-length="9"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/resources/" > <span>Resources</span> </a> </li> <li class="nav-blog flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- Blog" data-slug="blog" data-length="6"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/blog/" > <span>- Blog</span> </a> </li> <li class="nav-consulting flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- Consulting" data-slug="consulting" data-length="12"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/consulting/" > <span>- Consulting</span> </a> </li> <li class="nav-applied-research flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- Applied Research" data-slug="applied-research" data-length="18"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/resources/applied-research/" > <span>- Applied Research</span> </a> </li> <li class="nav-osm-extracts flex relative border border-transparent hover:bg-bgr-tone rounded-theme is-subitem" data-label="- OSM Extracts" data-slug="osm-extracts" data-length="14"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://app.interline.io/osm_extracts/interactive_view" > <span>- OSM Extracts</span> </a> </li> <li class="nav-about-interline flex relative border border-transparent hover:bg-bgr-tone rounded-theme" data-label="About Interline" data-slug="about-interline" data-length="15"> <a class="w-full flex px-4 py-1.5 rounded-theme" href="https://www.interline.io/about/" > <span>About Interline</span> </a> </li> </ul> </nav> <div class="flex flex-0 sm:flex-1 gap-2 items-center justify-end transition-move duration-300" data-header-actions> <button class="flex flex-col gap-1.5 size-8 md:size-9 items-center justify-center rounded-theme group hover:text-brand lg:hidden" data-menu-toggle aria-label="Menu toggle" aria-expanded="false" aria-haspopup="true" aria-controls="menu" @click="menuOpen = !menuOpen; event.currentTarget.setAttribute('aria-expanded', menuOpen);" > <span class="relative pointer-events-none w-5 h-0.5 rounded-sm bg-typ-tone group-hover:bg-brand transition-all" :class="menuOpen ? 'rotate-45 top-1' : 'rotate-0 top-0'"></span> <span class="relative pointer-events-none w-5 h-0.5 rounded-sm bg-typ-tone group-hover:bg-brand transition-all" :class="menuOpen ? '-rotate-45 -top-1' : ''"></span> </button> </div> </div> </header> <div class="fixed shadow-xl z-[100] top-[64px] md:top-[84px] w-full bg-bgr text-typ-tone pt-4 border-t border-brd lg:hidden fixed" :class="menuOpen ? 'block' : 'hidden'" data-menu id="menu" > <div class="px-4 sm:px-6"> <nav class="" data-nav="mobile"> <ul class="flex flex-col gap-1"> <li class="nav-transitland-platform nav-current-parent flex relative" data-label="Transitland Platform" data-slug="transitland-platform" data-length="20"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/transitland/" > <span>Transitland Platform</span> </a> </li> <li class="nav-intro-to-transitland nav-current-parent flex relative is-subitem" data-label="- Intro to Transitland" data-slug="intro-to-transitland" data-length="22"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/transitland/" > <span>- Intro to Transitland</span> </a> </li> <li class="nav-transitland-apis-for-developers flex relative is-subitem" data-label="- Transitland APIs for Developers" data-slug="transitland-apis-for-developers" data-length="33"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/transitland/apis-for-developers/" > <span>- Transitland APIs for Developers</span> </a> </li> <li class="nav-custom-bulk-transit-data-exports flex relative is-subitem" data-label="- Custom Bulk Transit Data Exports" data-slug="custom-bulk-transit-data-exports" data-length="34"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/transitland/custom-bulk-transit-data/" > <span>- Custom Bulk Transit Data Exports</span> </a> </li> <li class="nav-all-stops-in-the-united-states flex relative is-subitem" data-label="- All Stops in the United States" data-slug="all-stops-in-the-united-states" data-length="32"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/transitland/all-us-stops-bulk-data/" > <span>- All Stops in the United States</span> </a> </li> <li class="nav-compare-transitland nav-current flex relative is-subitem" data-label="- Compare Transitland" data-slug="compare-transitland" data-length="21"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/transitland/compare/" > <span>- Compare Transitland</span> </a> </li> <li class="nav-transitland-plans-pricing flex relative is-subitem" data-label="- Transitland Plans &amp; Pricing" data-slug="transitland-plans-pricing" data-length="30"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.transit.land/plans-pricing/" > <span>- Transitland Plans &amp; Pricing</span> </a> </li> <li class="nav-interline-routing-platform flex relative" data-label="Interline Routing Platform" data-slug="interline-routing-platform" data-length="26"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/routing-platform/" > <span>Interline Routing Platform</span> </a> </li> <li class="nav-intro-to-valhalla flex relative is-subitem" data-label="- Intro to Valhalla" data-slug="intro-to-valhalla" data-length="19"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/valhalla/" > <span>- Intro to Valhalla</span> </a> </li> <li class="nav-valhalla-tilepacks flex relative is-subitem" data-label="- Valhalla Tilepacks" data-slug="valhalla-tilepacks" data-length="20"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/valhalla/tilepacks/" > <span>- Valhalla Tilepacks</span> </a> </li> <li class="nav-global-hosted-valhalla-apis flex relative is-subitem" data-label="- Global Hosted Valhalla APIs" data-slug="global-hosted-valhalla-apis" data-length="29"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://rapidapi.com/interline-technologies-interline-technologies-default/api/interline-global-valhalla-navigation-and-routing-engine/" > <span>- Global Hosted Valhalla APIs</span> </a> </li> <li class="nav-transitland-routing-api flex relative is-subitem" data-label="- Transitland Routing API" data-slug="transitland-routing-api" data-length="25"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.transit.land/documentation/routing-api/" > <span>- Transitland Routing API</span> </a> </li> <li class="nav-resources flex relative" data-label="Resources" data-slug="resources" data-length="9"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/resources/" > <span>Resources</span> </a> </li> <li class="nav-blog flex relative is-subitem" data-label="- Blog" data-slug="blog" data-length="6"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/blog/" > <span>- Blog</span> </a> </li> <li class="nav-consulting flex relative is-subitem" data-label="- Consulting" data-slug="consulting" data-length="12"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/consulting/" > <span>- Consulting</span> </a> </li> <li class="nav-applied-research flex relative is-subitem" data-label="- Applied Research" data-slug="applied-research" data-length="18"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/resources/applied-research/" > <span>- Applied Research</span> </a> </li> <li class="nav-osm-extracts flex relative is-subitem" data-label="- OSM Extracts" data-slug="osm-extracts" data-length="14"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://app.interline.io/osm_extracts/interactive_view" > <span>- OSM Extracts</span> </a> </li> <li class="nav-about-interline flex relative" data-label="About Interline" data-slug="about-interline" data-length="15"> <a class="flex py-0.5 rounded-theme hover:text-brand" href="https://www.interline.io/about/" > <span>About Interline</span> </a> </li> </ul> </nav> </div> <div class="p-4 mt-4 flex gap-2 border-y border-brd"> <button class="flex gap-0.5 p-[3px] border border-brd text-typ-tone rounded-theme hover:bg-bgr-tone" aria-label="Toggle color scheme" data-color-scheme-toggle @click="toggleColorScheme(event)"> <span data-theme="light" class="px-[5px] py-0.5 border border-transparent opacity-50 rounded-theme"> <i class="icon icon-sun size-4 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-sun-filled" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M12 19a1 1 0 0 1 .993 .883l.007 .117v1a1 1 0 0 1 -1.993 .117l-.007 -.117v-1a1 1 0 0 1 1 -1z" stroke-width="0" fill="currentColor" /> <path d="M18.313 16.91l.094 .083l.7 .7a1 1 0 0 1 -1.32 1.497l-.094 -.083l-.7 -.7a1 1 0 0 1 1.218 -1.567l.102 .07z" stroke-width="0" fill="currentColor" /> <path d="M7.007 16.993a1 1 0 0 1 .083 1.32l-.083 .094l-.7 .7a1 1 0 0 1 -1.497 -1.32l.083 -.094l.7 -.7a1 1 0 0 1 1.414 0z" stroke-width="0" fill="currentColor" /> <path d="M4 11a1 1 0 0 1 .117 1.993l-.117 .007h-1a1 1 0 0 1 -.117 -1.993l.117 -.007h1z" stroke-width="0" fill="currentColor" /> <path d="M21 11a1 1 0 0 1 .117 1.993l-.117 .007h-1a1 1 0 0 1 -.117 -1.993l.117 -.007h1z" stroke-width="0" fill="currentColor" /> <path d="M6.213 4.81l.094 .083l.7 .7a1 1 0 0 1 -1.32 1.497l-.094 -.083l-.7 -.7a1 1 0 0 1 1.217 -1.567l.102 .07z" stroke-width="0" fill="currentColor" /> <path d="M19.107 4.893a1 1 0 0 1 .083 1.32l-.083 .094l-.7 .7a1 1 0 0 1 -1.497 -1.32l.083 -.094l.7 -.7a1 1 0 0 1 1.414 0z" stroke-width="0" fill="currentColor" /> <path d="M12 2a1 1 0 0 1 .993 .883l.007 .117v1a1 1 0 0 1 -1.993 .117l-.007 -.117v-1a1 1 0 0 1 1 -1z" stroke-width="0" fill="currentColor" /> <path d="M12 7a5 5 0 1 1 -4.995 5.217l-.005 -.217l.005 -.217a5 5 0 0 1 4.995 -4.783z" stroke-width="0" fill="currentColor" /> </svg> </i> </span> <span data-theme="dark" class="px-[5px] py-0.5 border border-transparent opacity-50 rounded-theme"> <i class="icon icon-moon size-4 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-moon-filled" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M12 1.992a10 10 0 1 0 9.236 13.838c.341 -.82 -.476 -1.644 -1.298 -1.31a6.5 6.5 0 0 1 -6.864 -10.787l.077 -.08c.551 -.63 .113 -1.653 -.758 -1.653h-.266l-.068 -.006l-.06 -.002z" stroke-width="0" fill="currentColor" /> </svg> </i> </span> </button> </div> </div> <main class="main"> <section class="px-4 sm:px-6" data-page-hero> <div class="max-w-2xl py-16 mx-auto flex flex-col gap-4 md:gap-8 md:flex-row"> <div class="flex flex-1 flex-col gap-4 md:gap-6 justify-center items-center text-center"> <h1 class="font-semibold tracking-tight text-2xl sm:text-3xl md:text-5xl lg:text-5xl">Transitland vs. alternative transit data systems</h1> </div> </div> </section> <article class="post no-image ghost-content prose md:prose-lg prose-theme"> <p>Compare Transitland鈥檚 powerful functionality with other mobility data processing systems and sources for GTFS, GTFS Realtime, and GBFS feeds.</p><div class="kg-card kg-product-card"> <div class="kg-product-card-container"> <div class="kg-product-card-title-container"> <h4 class="kg-product-card-title"><span style="white-space: pre-wrap;">Compare Transitland vs. GTFS Data Exchange</span></h4> </div> <div class="kg-product-card-description"><p><span style="white-space: pre-wrap;">Learn about the history of GTFS Data Exchange and how its key functionality is now available through the Transitland platform.</span></p></div> <a href="https://www.interline.io/transitland/compare/gtfs-data-exchange/" class="kg-product-card-button kg-product-card-btn-accent" target="_blank" rel="noopener noreferrer"><span>See comparison</span></a> </div> </div><div class="kg-card kg-product-card"> <div class="kg-product-card-container"> <div class="kg-product-card-title-container"> <h4 class="kg-product-card-title"><span style="white-space: pre-wrap;">Compare Transitland vs. OpenMobilityData</span></h4> </div> <div class="kg-product-card-description"><p><span style="white-space: pre-wrap;">Learn about OpenMobilityData, the website originally known as TransitFeeds, and how it compares to Transitland.</span></p></div> <a href="https://www.interline.io/transitland/compare/openmobilitydata" class="kg-product-card-button kg-product-card-btn-accent" target="_blank" rel="noopener noreferrer"><span>See comparison</span></a> </div> </div><div class="kg-card kg-product-card"> <div class="kg-product-card-container"> <div class="kg-product-card-title-container"> <h4 class="kg-product-card-title"><span style="white-space: pre-wrap;">Compare Transitland vs. US National Transit Map</span></h4> </div> <div class="kg-product-card-description"><p><span style="white-space: pre-wrap;">Learn about the National Transit Map, a GIS dataset published by the US Bureau of Transportation Statistics, and how it compares to Transitland.</span></p></div> <a href="https://www.interline.io/transitland/compare/us-national-transit-map" class="kg-product-card-button kg-product-card-btn-accent" target="_blank" rel="noopener noreferrer"><span>See comparison</span></a> </div> </div> </article> </main> <footer class="px-4 sm:px-6 bg-bgr mt-16" data-footer> <div class="max-w-container mx-auto relative before:content-[''] before:absolute before:top-0 before:left-0 before:w-full before:h-[1px] before:bg-fading"> <div class="grid grid-cols-2 md:grid-cols-4 lg:grid-cols-6 gap-4 py-8 md:gap-8 md:py-12"> <div class="flex flex-col items-start gap-3 col-span-2 md:col-span-1 lg:col-span-2" data-footer-brand> <a href="https://www.interline.io" data-brand> <picture data-logo='dark'> <source srcset="/content/images/size/w100/format/webp/2024/11/interline-logo-white-on-transparent-2.png 100w, /content/images/size/w320/format/webp/2024/11/interline-logo-white-on-transparent-2.png 320w, /content/images/size/w640/format/webp/2024/11/interline-logo-white-on-transparent-2.png 600w" sizes="(max-width: 800px) 200px, 320px" type="image/webp" > <img class="h-[var(--logo-h-mobile)] w-[var(--logo-w-mobile)] md:h-[var(--logo-h-desktop)] md:w-[var(--logo-w-desktop)] will-change-[filter] transition-[filter] blur" onload="this.classList.remove('blur')" loading="lazy" srcset="/content/images/size/w100/format/webp/2024/11/interline-logo-white-on-transparent-2.png 100w, /content/images/size/w320/format/webp/2024/11/interline-logo-white-on-transparent-2.png 320w, /content/images/size/w640/format/webp/2024/11/interline-logo-white-on-transparent-2.png 600w" sizes="(max-width: 800px) 200px, 320px" src="/content/images/size/w30/2024/11/interline-logo-white-on-transparent-2.png" alt="Interline Technologies" /> </picture> <picture data-logo='default'> <source srcset="/content/images/size/w100/format/webp/2023/10/Interline-logo-full-1.png 100w, /content/images/size/w320/format/webp/2023/10/Interline-logo-full-1.png 320w, /content/images/size/w640/format/webp/2023/10/Interline-logo-full-1.png 600w" sizes="(max-width: 800px) 200px, 320px" type="image/webp" > <img class="h-[var(--logo-h-mobile)] w-[var(--logo-w-mobile)] md:h-[var(--logo-h-desktop)] md:w-[var(--logo-w-desktop)] will-change-[filter] transition-[filter] blur" onload="this.classList.remove('blur')" loading="lazy" srcset="/content/images/size/w100/format/webp/2023/10/Interline-logo-full-1.png 100w, /content/images/size/w320/format/webp/2023/10/Interline-logo-full-1.png 320w, /content/images/size/w640/format/webp/2023/10/Interline-logo-full-1.png 600w" sizes="(max-width: 800px) 200px, 320px" src="/content/images/size/w30/2023/10/Interline-logo-full-1.png" alt="Interline Technologies" /> </picture> </a> <p class="text-typ-tone">We&#x27;re a product and consulting business that helps organizations understand and improve transportation networks, digitally.</p> <nav class="flex items-center gap-2 text-typ-tone text-base" data-socials="footer" x-data="socials"> <a :href="rss" :class="rss && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="RSS"><i class="icon icon-rss w-4 h-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-rss" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <circle cx="5" cy="19" r="1" /> <path d="M4 4a16 16 0 0 1 16 16" /> <path d="M4 11a9 9 0 0 1 9 9" /> </svg> </i><span class="sr-only">RSS</span></a> <a :href="threads" :class="threads && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="Threads"><i class="icon icon-threads w-4 h-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-threads"> <path stroke="none" d="M0 0h24v24H0z" fill="none" /> <path d="M19 7.5c-1.333 -3 -3.667 -4.5 -7 -4.5c-5 0 -8 2.5 -8 9s3.5 9 8 9s7 -3 7 -5s-1 -5 -7 -5c-2.5 0 -3 1.25 -3 2.5c0 1.5 1 2.5 2.5 2.5c2.5 0 3.5 -1.5 3.5 -5s-2 -4 -3 -4s-1.833 .333 -2.5 1" /> </svg> </i><span class="sr-only">Threads</span></a> <a :href="linkedin" :class="linkedin && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="Linkedin"><i class="icon icon-linkedin w-4 h-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-linkedin" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path> <rect x="2" y="9" width="4" height="12"></rect> <circle cx="4" cy="4" r="2"></circle> </svg> </i><span class="sr-only">Linkedin</span></a> <a :href="discord" :class="discord && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="Discord"><i class="icon icon-discord w-4 h-4 stroke-2 stroke-2"> </i><span class="sr-only">Discord</span></a> <a :href="github" :class="github && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="Github"><i class="icon icon-github w-4 h-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-github" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <desc>Download more icon variants from https://tabler-icons.io/i/brand-github</desc> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5" /> </svg> </i><span class="sr-only">Github</span></a> <a :href="instagram" :class="instagram && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="Instagram"><i class="icon icon-instagram w-4 h-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-instagram" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <desc>Download more icon variants from https://tabler-icons.io/i/brand-instagram</desc> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <rect x="4" y="4" width="16" height="16" rx="4" /> <circle cx="12" cy="12" r="3" /> <line x1="16.5" y1="7.5" x2="16.5" y2="7.501" /> </svg> </i><span class="sr-only">Instagram</span></a> <a :href="pinterest" :class="pinterest && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="Pinterest"><i class="icon icon-pinterest w-4 h-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-pinterest" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <line x1="8" y1="20" x2="12" y2="11" /> <path d="M10.7 14c.437 1.263 1.43 2 2.55 2c2.071 0 3.75 -1.554 3.75 -4a5 5 0 1 0 -9.7 1.7" /> <circle cx="12" cy="12" r="9" /> </svg> </i><span class="sr-only">Pinterest</span></a> <a :href="reddit" :class="reddit && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="Reddit"><i class="icon icon-reddit w-4 h-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-reddit" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M12 8c2.648 0 5.028 .826 6.675 2.14a2.5 2.5 0 0 1 2.326 4.36c0 3.59 -4.03 6.5 -9 6.5c-4.875 0 -8.845 -2.8 -9 -6.294l-1 -.206a2.5 2.5 0 0 1 2.326 -4.36c1.646 -1.313 4.026 -2.14 6.674 -2.14z" /> <path d="M12 8l1 -5l6 1" /> <circle cx="19" cy="4" r="1" /> <circle cx="9" cy="13" r=".5" fill="currentColor" /> <circle cx="15" cy="13" r=".5" fill="currentColor" /> <path d="M10 17c.667 .333 1.333 .5 2 .5s1.333 -.167 2 -.5" /> </svg> </i><span class="sr-only">Reddit</span></a> <a :href="telegram" :class="telegram && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="Telegram"><i class="icon icon-telegram w-4 h-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-telegram" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <desc>Download more icon variants from https://tabler-icons.io/i/brand-telegram</desc> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4" /> </svg> </i><span class="sr-only">Telegram</span></a> <a :href="tiktok" :class="tiktok && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="Tiktok"><i class="icon icon-tiktok w-4 h-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-tiktok" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <desc>Download more icon variants from https://tabler-icons.io/i/brand-tiktok</desc> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M9 12a4 4 0 1 0 4 4v-12a5 5 0 0 0 5 5" /> </svg> </i><span class="sr-only">Tiktok</span></a> <a :href="whatsapp" :class="whatsapp && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="Whatsapp"><i class="icon icon-whatsapp w-4 h-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-whatsapp" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <desc>Download more icon variants from https://tabler-icons.io/i/brand-whatsapp</desc> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M3 21l1.65 -3.8a9 9 0 1 1 3.4 2.9l-5.05 .9" /> <path d="M9 10a0.5 .5 0 0 0 1 0v-1a0.5 .5 0 0 0 -1 0v1a5 5 0 0 0 5 5h1a0.5 .5 0 0 0 0 -1h-1a0.5 .5 0 0 0 0 1" /> </svg> </i><span class="sr-only">Whatsapp</span></a> <a :href="youtube" :class="youtube && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="Youtube"><i class="icon icon-youtube w-4 h-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-youtube" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <desc>Download more icon variants from https://tabler-icons.io/i/brand-youtube</desc> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <rect x="3" y="5" width="18" height="14" rx="4" /> <path d="M10 9l5 3l-5 3z" /> </svg> </i><span class="sr-only">Youtube</span></a> <a rel="me" :href="mastodon" :class="mastodon && '!block'" class="hidden p-2 border border-brd bg-bgr rounded-theme hover:bg-bgr-tone hover:text-brand hover:border-brand" aria-label="Mastodon"><i class="icon icon-mastodon w-4 h-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-brand-mastodon" ><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path d="M18.648 15.254c-1.816 1.763 -6.648 1.626 -6.648 1.626a18.262 18.262 0 0 1 -3.288 -.256c1.127 1.985 4.12 2.81 8.982 2.475c-1.945 2.013 -13.598 5.257 -13.668 -7.636l-.026 -1.154c0 -3.036 .023 -4.115 1.352 -5.633c1.671 -1.91 6.648 -1.666 6.648 -1.666s4.977 -.243 6.648 1.667c1.329 1.518 1.352 2.597 1.352 5.633s-.456 4.074 -1.352 4.944z" /><path d="M12 11.204v-2.926c0 -1.258 -.895 -2.278 -2 -2.278s-2 1.02 -2 2.278v4.722m4 -4.722c0 -1.258 .895 -2.278 2 -2.278s2 1.02 2 2.278v4.722" /></svg> </i><span class="sr-only">Mastodon</span></a> </nav> </div> <span class="hidden lg:block"></span> <div class="flex flex-col gap-2 mt-2" data-footer-nav="primary"> <span class="font-semibold">Navigate to</span> <nav class=""> <ul class="flex flex-col items-start gap-2 text-typ-tone text-sm"> <li class="nav-transitland-platform nav-current-parent flex flex-col relative" data-label="Transitland Platform" data-slug="transitland-platform" data-length="20"> <a class="flex hover:text-brand" href="https://www.interline.io/transitland/" > <span>Transitland Platform</span> </a> </li> <li class="nav-intro-to-transitland nav-current-parent flex flex-col relative is-subitem" data-label="- Intro to Transitland" data-slug="intro-to-transitland" data-length="22"> <a class="flex hover:text-brand" href="https://www.interline.io/transitland/" > <span>- Intro to Transitland</span> </a> </li> <li class="nav-transitland-apis-for-developers flex flex-col relative is-subitem" data-label="- Transitland APIs for Developers" data-slug="transitland-apis-for-developers" data-length="33"> <a class="flex hover:text-brand" href="https://www.interline.io/transitland/apis-for-developers/" > <span>- Transitland APIs for Developers</span> </a> </li> <li class="nav-custom-bulk-transit-data-exports flex flex-col relative is-subitem" data-label="- Custom Bulk Transit Data Exports" data-slug="custom-bulk-transit-data-exports" data-length="34"> <a class="flex hover:text-brand" href="https://www.interline.io/transitland/custom-bulk-transit-data/" > <span>- Custom Bulk Transit Data Exports</span> </a> </li> <li class="nav-all-stops-in-the-united-states flex flex-col relative is-subitem" data-label="- All Stops in the United States" data-slug="all-stops-in-the-united-states" data-length="32"> <a class="flex hover:text-brand" href="https://www.interline.io/transitland/all-us-stops-bulk-data/" > <span>- All Stops in the United States</span> </a> </li> <li class="nav-compare-transitland nav-current flex flex-col relative is-subitem" data-label="- Compare Transitland" data-slug="compare-transitland" data-length="21"> <a class="flex hover:text-brand" href="https://www.interline.io/transitland/compare/" > <span>- Compare Transitland</span> </a> </li> <li class="nav-transitland-plans-pricing flex flex-col relative is-subitem" data-label="- Transitland Plans &amp; Pricing" data-slug="transitland-plans-pricing" data-length="30"> <a class="flex hover:text-brand" href="https://www.transit.land/plans-pricing/" > <span>- Transitland Plans &amp; Pricing</span> </a> </li> <li class="nav-interline-routing-platform flex flex-col relative" data-label="Interline Routing Platform" data-slug="interline-routing-platform" data-length="26"> <a class="flex hover:text-brand" href="https://www.interline.io/routing-platform/" > <span>Interline Routing Platform</span> </a> </li> <li class="nav-intro-to-valhalla flex flex-col relative is-subitem" data-label="- Intro to Valhalla" data-slug="intro-to-valhalla" data-length="19"> <a class="flex hover:text-brand" href="https://www.interline.io/valhalla/" > <span>- Intro to Valhalla</span> </a> </li> <li class="nav-valhalla-tilepacks flex flex-col relative is-subitem" data-label="- Valhalla Tilepacks" data-slug="valhalla-tilepacks" data-length="20"> <a class="flex hover:text-brand" href="https://www.interline.io/valhalla/tilepacks/" > <span>- Valhalla Tilepacks</span> </a> </li> <li class="nav-global-hosted-valhalla-apis flex flex-col relative is-subitem" data-label="- Global Hosted Valhalla APIs" data-slug="global-hosted-valhalla-apis" data-length="29"> <a class="flex hover:text-brand" href="https://rapidapi.com/interline-technologies-interline-technologies-default/api/interline-global-valhalla-navigation-and-routing-engine/" > <span>- Global Hosted Valhalla APIs</span> </a> </li> <li class="nav-transitland-routing-api flex flex-col relative is-subitem" data-label="- Transitland Routing API" data-slug="transitland-routing-api" data-length="25"> <a class="flex hover:text-brand" href="https://www.transit.land/documentation/routing-api/" > <span>- Transitland Routing API</span> </a> </li> <li class="nav-resources flex flex-col relative" data-label="Resources" data-slug="resources" data-length="9"> <a class="flex hover:text-brand" href="https://www.interline.io/resources/" > <span>Resources</span> </a> </li> <li class="nav-blog flex flex-col relative is-subitem" data-label="- Blog" data-slug="blog" data-length="6"> <a class="flex hover:text-brand" href="https://www.interline.io/blog/" > <span>- Blog</span> </a> </li> <li class="nav-consulting flex flex-col relative is-subitem" data-label="- Consulting" data-slug="consulting" data-length="12"> <a class="flex hover:text-brand" href="https://www.interline.io/consulting/" > <span>- Consulting</span> </a> </li> <li class="nav-applied-research flex flex-col relative is-subitem" data-label="- Applied Research" data-slug="applied-research" data-length="18"> <a class="flex hover:text-brand" href="https://www.interline.io/resources/applied-research/" > <span>- Applied Research</span> </a> </li> <li class="nav-osm-extracts flex flex-col relative is-subitem" data-label="- OSM Extracts" data-slug="osm-extracts" data-length="14"> <a class="flex hover:text-brand" href="https://app.interline.io/osm_extracts/interactive_view" > <span>- OSM Extracts</span> </a> </li> <li class="nav-about-interline flex flex-col relative" data-label="About Interline" data-slug="about-interline" data-length="15"> <a class="flex hover:text-brand" href="https://www.interline.io/about/" > <span>About Interline</span> </a> </li> </ul> </nav> </div> <div class="flex flex-col gap-2 mt-2" data-footer-nav="secondary"> <span class="font-semibold">For more info</span> <nav class=""> <ul class="flex flex-col items-start gap-2 text-typ-tone text-sm"> <li class="nav-terms flex flex-col relative" data-label="Terms" data-slug="terms" data-length="5"> <a class="flex hover:text-brand" href="https://www.interline.io/legal/terms/" > <span>Terms</span> </a> </li> <li class="nav-privacy flex flex-col relative" data-label="Privacy" data-slug="privacy" data-length="7"> <a class="flex hover:text-brand" href="https://www.interline.io/legal/privacy/" > <span>Privacy</span> </a> </li> <li class="nav-support flex flex-col relative" data-label="Support" data-slug="support" data-length="7"> <a class="flex hover:text-brand" href="https://www.interline.io/support/" > <span>Support</span> </a> </li> <li class="nav-docs flex flex-col relative" data-label="Docs" data-slug="docs" data-length="4"> <a class="flex hover:text-brand" href="https://www.interline.io/docs/" > <span>Docs</span> </a> </li> </ul> </nav> </div> <div class="flex flex-col gap-2 mt-2" data-footer-nav="categories"> <span class="font-semibold">Read on our blog</span> <nav class=""> <ul class="flex flex-col items-start gap-2 text-typ-tone text-sm"> <li class="flex flex-col relative"> <a href="/blog/tag/about-interline/" class="flex hover:text-brand">About Interline</a> </li> <li class="flex flex-col relative"> <a href="/blog/tag/transitland/" class="flex hover:text-brand">Transitland</a> </li> <li class="flex flex-col relative"> <a href="/blog/tag/gtfs/" class="flex hover:text-brand">GTFS</a> </li> <li class="flex flex-col relative"> <a href="/blog/tag/511-sf-bay-regional-feed/" class="flex hover:text-brand">511.org SF Bay Regional Feed</a> </li> <li class="flex flex-col relative"> <a href="/blog/tag/openstreetmap/" class="flex hover:text-brand">OpenStreetMap</a> </li> <li class="flex flex-col relative"> <a href="/blog/tag/geojsonl/" class="flex hover:text-brand">GeoJSONL</a> </li> </ul> </nav> </div> </div> <div class="py-4 md:py-6 flex flex-wrap items-center gap-2 relative before:content-[''] before:absolute before:top-0 before:left-0 before:w-full before:h-[1px] before:bg-fading"> <div class="text-sm text-typ-tone"> <span data-footer-date>&copy; 2018 - 2024&nbsp;<a class="hover:underline" href="https://www.interline.io">Interline Technologies LLC</a>.</span> </div> <button class="flex gap-0.5 p-[3px] border border-brd text-typ-tone rounded-theme hover:bg-bgr-tone" aria-label="Toggle color scheme" data-color-scheme-toggle @click="toggleColorScheme(event)"> <span data-theme="light" class="px-[5px] py-0.5 border border-transparent opacity-50 rounded-theme"> <i class="icon icon-sun size-4 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-sun-filled" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M12 19a1 1 0 0 1 .993 .883l.007 .117v1a1 1 0 0 1 -1.993 .117l-.007 -.117v-1a1 1 0 0 1 1 -1z" stroke-width="0" fill="currentColor" /> <path d="M18.313 16.91l.094 .083l.7 .7a1 1 0 0 1 -1.32 1.497l-.094 -.083l-.7 -.7a1 1 0 0 1 1.218 -1.567l.102 .07z" stroke-width="0" fill="currentColor" /> <path d="M7.007 16.993a1 1 0 0 1 .083 1.32l-.083 .094l-.7 .7a1 1 0 0 1 -1.497 -1.32l.083 -.094l.7 -.7a1 1 0 0 1 1.414 0z" stroke-width="0" fill="currentColor" /> <path d="M4 11a1 1 0 0 1 .117 1.993l-.117 .007h-1a1 1 0 0 1 -.117 -1.993l.117 -.007h1z" stroke-width="0" fill="currentColor" /> <path d="M21 11a1 1 0 0 1 .117 1.993l-.117 .007h-1a1 1 0 0 1 -.117 -1.993l.117 -.007h1z" stroke-width="0" fill="currentColor" /> <path d="M6.213 4.81l.094 .083l.7 .7a1 1 0 0 1 -1.32 1.497l-.094 -.083l-.7 -.7a1 1 0 0 1 1.217 -1.567l.102 .07z" stroke-width="0" fill="currentColor" /> <path d="M19.107 4.893a1 1 0 0 1 .083 1.32l-.083 .094l-.7 .7a1 1 0 0 1 -1.497 -1.32l.083 -.094l.7 -.7a1 1 0 0 1 1.414 0z" stroke-width="0" fill="currentColor" /> <path d="M12 2a1 1 0 0 1 .993 .883l.007 .117v1a1 1 0 0 1 -1.993 .117l-.007 -.117v-1a1 1 0 0 1 1 -1z" stroke-width="0" fill="currentColor" /> <path d="M12 7a5 5 0 1 1 -4.995 5.217l-.005 -.217l.005 -.217a5 5 0 0 1 4.995 -4.783z" stroke-width="0" fill="currentColor" /> </svg> </i> </span> <span data-theme="dark" class="px-[5px] py-0.5 border border-transparent opacity-50 rounded-theme"> <i class="icon icon-moon size-4 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-moon-filled" width="24" height="24" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"/> <path d="M12 1.992a10 10 0 1 0 9.236 13.838c.341 -.82 -.476 -1.644 -1.298 -1.31a6.5 6.5 0 0 1 -6.864 -10.787l.077 -.08c.551 -.63 .113 -1.653 -.758 -1.653h-.266l-.068 -.006l-.06 -.002z" stroke-width="0" fill="currentColor" /> </svg> </i> </span> </button> </div> </div> </footer> <template data-toggle-template> <button class="ml-0.5" data-class="rotate-180" title="Menu toggle" aria-label="Menu toggle" aria-controls="" aria-expanded="false" @click="toggleSubmenu(event)" > <i class="icon icon-chevron-down size-4 stroke-2 stroke-2"> <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-down" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <polyline points="6 9 12 15 18 9"></polyline> </svg> </i> </button> </template> <script> function renderSubmenus() { const navItems = document.querySelectorAll('[data-nav] li') const subItems = document.querySelectorAll('.is-subitem') const mobileClass = "hidden pl-4 flex flex-col gap-0.5 py-1 px-1.5 basis-full" const desktopClass = "z-[50] min-w-[calc(100%_+_24px)] absolute flex flex-col gap-1 shadow-2xl border border-brd rounded-theme-xxs bg-bgr py-2 px-1.5 -ml-2 mt-11 opacity-0 invisible translate-y-1 transition-all" // Remove '-' signs subItems.forEach(item => { const itemName = item.querySelector('a span') itemName.innerText = itemName.innerText.slice(1) }); // Add subitems in place let subMenu, hasItems navItems.forEach((item, index) => { if (item.classList.contains('is-subitem') && !navItems[index - 1].classList.contains('is-subitem')) { navItems[index - 1].classList.add('is-mainitem'); navItems[index - 1].setAttribute('x-on:click.outside', 'closeSubmenus(event)') } subMenu = item.classList.contains('is-subitem') ? subMenu : document.createElement('ul'); if (item.classList.contains('is-subitem')) { subMenu.appendChild(item) subMenu.setAttribute('data-submenu', '') subMenu.getAttribute('id') === null ? subMenu.setAttribute('id', navItems[index - 1].getAttribute('data-slug')) : '' const menuType = subMenu.closest('nav').getAttribute('data-nav') subMenu.classList = menuType === 'desktop' ? desktopClass : mobileClass } else { item.appendChild(subMenu) } }); const dropdownMenus = document.querySelectorAll('[data-nav] .is-mainitem') const toggle = document.querySelector('[data-toggle-template]'); dropdownMenus.forEach(menu => { const toggleBtn = toggle.content.firstElementChild.cloneNode(true); toggleBtn.setAttribute('aria-controls', menu.getAttribute('data-slug')) menu.insertBefore(toggleBtn, menu.children[1]); }); } </script> <script> window.socials = { rss: '/blog/rss/', threads: '', linkedin: 'https://www.linkedin.com/company/interline-io/', discord: '', github: 'https://github.com/interline-io', instagram: '', pinterest: '', reddit: '', telegram: '', tiktok: '', whatsapp: '', youtube: '', mastodon: 'https://mastodon.social/@interline' } document.addEventListener('alpine:init', () => { Alpine.data('socials', () => (window.socials)) }) </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10