1<!DOCTYPE html><html lang="de" class="h-full scroll-smooth"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" type="image/svg+xml" href="/osm-verkehrswende-logo-2025.svg"><title>Cycling Quality Index auf Basis von OpenStreetMap â Ein Projekt der OpenStreetMap Verkehrswende-Gruppe</title><meta property="og:locale" content="de"><meta property="og:title" content="Cycling Quality Index auf Basis von OpenStreetMap â Ein Projekt der OpenStreetMap Verkehrswende-Gruppe"><meta property="og:description" content="Eine Klassifizierung der Fahrradfreundlichkeit und -eignung des StraÃennetzes"><meta property="og:image" content="/_astro/image.DwIbeuFS.png"><!-- We let the Twitter (â¦) figure out the given URL, so we don't accidentally overwrite params and such --><!-- <meta property="og:url" content="â¦"> --><meta name="twitter:title" content="Cycling Quality Index auf Basis von OpenStreetMap â Ein Projekt der OpenStreetMap Verkehrswende-Gruppe"><meta name="twitter:description" content="Eine Klassifizierung der Fahrradfreundlichkeit und -eignung des StraÃennetzes"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:image" content="/_astro/image.DwIbeuFS.png"><meta name="twitter:image:alt" content="OpenStreetMap Verkehrswende Community"><meta name="twitter:site" content="@osmberlin"><meta name="fediverse:creator" content="@[email protected]"><meta name="theme-color" content="#7D5197"><meta name="generator" content="Astro v6.4.8" data-generated-at="2026-08-26T10:42:13.440Z"><link rel="alternate" type="application/rss+xml" href="feed.xml"><!-- TODO: Check out https://npm.io/package/tailwindcss-safe-area as a possible alternative -->
1<script> 2 /* 3 Fix .h-screen, see .computed-h-screen 4 https://css-tricks.com/the-trick-to-viewport-units-on-mobile/ 5 */ 6 // First we get the viewport height and we multiple it by 1% to get a value for a vh unit 7 let vh = window.innerHeight * 0.01 8 // Then we set the value in the --vh custom property to the root of the document 9 document.documentElement.style.setProperty('--vh', `${vh}px`) 10 11 // We listen to the resize event 12 window.addEventListener('resize', () => { 13 let vh = window.innerHeight * 0.01 14 document.documentElement.style.setProperty('--vh', `${vh}px`) 15 }) 16 </script>
16<link rel="stylesheet" href="/_astro/Navigation.Bm3_QFtL.css"></head> <body class="h-full text-base"> <div class="flex flex-col text-gray-900 lg:flex-row lg:gap-3"> <nav data-navigation-project="[object Object]" class="mb-10 lg:mb-0 z-1001 flex w-full flex-none justify-between px-3 py-3 shadow-xl lg:relative lg:z-auto lg:block lg:w-64 lg:py-6 lg:shadow-none group/navi" lang="de"> <div> <a href="/" class="block text-sm text-gray-300 group-hover/navi:text-gray-400 hover:text-blue-500"> 17â Projektübersicht 18</a> <a href="/cqi" class="-mx-3 mb-0 flex items-center gap-1.5 px-3 hover:bg-blue-50 lg:mb-10"> <svg id="svg15" viewBox="0 0 300 285" class="mt-1 max-h-10 flex-none drop-shadow-sm"> 19 <defs> 20 <clipPath id="clippath"> 21 <path d="m0 .39 20.11 67.69-18.77 64.33 17.43 73.08-16.76 78.13 276.67.38 15.94-78.85-17.09-73.01 21.45-64.04L279.57 0S1 .07 0 .4Z" class="cls-2" /> 22 </clipPath> 23 <clipPath id="clippath-1"> 24 <path d="m0 .39 20.11 67.69-18.77 64.33 17.43 73.08-16.76 78.13 276.67.38 15.94-78.85-17.09-73.01s1.01-10.16 7.71-28.01l13.74-36.04L279.57 0S1 .07 0 .4Z" class="cls-2" /> 25 </clipPath> 26 <clipPath id="clippath-2"> 27 <circle cx="198.89" cy="114.13" r="88.71" class="cls-2" /> 28 </clipPath> 29 <style> 30 .cls-1{fill:#b3b3b3}.cls-1,.cls-2,.cls-4,.cls-5,.cls-7,.cls-8{stroke-width:0}.cls-2{fill:none}.cls-4{fill:#9bc4ff}.cls-5{fill:#e6ebbf}.cls-7{fill:#aad273}.cls-8{fill:#fff} 31 </style> 32 </defs> 33 <g id="Farbe"> 34 <path id="Karte_grün" d="m0 .39 20.11 67.69-18.77 64.33 17.43 73.08-16.76 78.13 276.67.38 15.94-78.85-17.09-73.01 21.45-64.04L279.57 0S1 .07 0 .4Z" class="cls-5" /> 35 <g style="clip-path:url(#clippath)"> 36 <g id="g6"> 37 <path id="path3" d="M47.59 277.22c-8.04-6.4-23.13-7.75-24.47-17.85s12.4-13.47 18.44-19.2 2.68-15.16-3.02-16.5c-.36-.08-.72-.12-1.09-.12-5.4-.13-10.28 5.86-12.7 7.88-3.42 2.88-13.07 5.23-26.01 6.43l-16.52 54.87 71.06 9.77s2.35-18.86-5.7-25.26Z" class="cls-7" /> 38 <path id="path4" d="M58.76 88.73c-2.61-4.76-7.79-5.87-14.63-6.78S27.34 67.76 20.21 67.76c-12.96 0-23.48 53.45-23.48 53.45l5.78 19.14s16.6-5.58 18.01-15.79c1.42-10.21-7.11-12.54.9-18.82 7.99-6.28 14.95.75 23.18 1.79 14.27 1.79 17.82-13.05 14.61-17.82-.2-.31-.27-.69-.44-1.01h-.01Z" class="cls-7" /> 39 <path id="path5" d="M299.81-14.7c-25.47-2.61-153.18-1.17-163.82-.11-11.89 1.2-67.77 5.97-35.66 54.95C117.21 65.9 79.52 74.79 90.22 93.3c5.91 10.22 17.24 9.55 15.38 29.21 4.12 17.12 75.98-12.02 84.71-11.29l29.13-31.95 20.51 3.58 21.4-31.36 6.34 11.34c1.85.12 29.93-19.96 32.1-16.72.01.03.03.04.04.07v-60.89h-.01Z" class="cls-7" /> 40 <path id="path6" d="M303.31 71.37c-4.14 9.39-12.86 22.11-14.59 29.15l.04 4.94c3.42 25.39-7.29 49.02-26.13 69.01 0 0-21.79 19.82-19.27 20.07-14.27 10.75-11.77 37.56-12.09 42.93-.34 5.73-6.41 7.71-11.1 15.16-5.35 8.51-1.13 28.33 13.29 48.54l70.15-1.2s-.47-135.72-.31-228.59h.01Z" class="cls-7" /> 41 <path id="Wasser" d="M201.78 81.96c-18.44-2.99-63.6 1.79-87.21 25.64-14.39 14.54-20.47 52.44-22.89 60.32-2.41 7.88-19.41 28.21-22.77 31.91s-17.67 5.48-25.41 6.88c-9.16 1.67-18.85 8.28-22.22 10.67-3.37 2.38-8.62 2.09-11.97 3.91-.07.24-.44 6.78-.62 7.5 6.68-2.16 17.79-5.89 24.11-11.11 7.19-5.94 26.29-6.13 35.81-10.6 9.51-4.49 17.72-27.47 34.15-32.86 16.42-5.39 26.6 16.45 31.67 24.99 4.68 7.89 9.12 14.71 12.59 19.99 3.55 5.39 10.73 17.77 11.64 20.42 2.28 6.61-18.6 24.07-20.81 27.32-2.21 3.25-4.29 19.34-4.81 22.63l6.37-2.02s1.22-14.82 4.09-18.67c3.9-5.23 14.79-13.22 20.66-21.94.97 1.27 6.25 4.78 22.52 17.32 8.46 7.4 7.12 17.03 8.69 20.61l7.36.23c-1.64-5.82-1.62-15.88-7.13-21.96-6.7-7.41-21.18-14.55-32.41-28.48-3.08-3.83-6.3-10.93-10.12-17.14-.78-1.28-2.96-4.85-4.85-8.42-5-14.28 10.82-25.93 9.93-42.06-.88-16.06-4.56-33.44 8.85-36.13s21.89 12.66 35.3 17.04 28.83-21.22 26.48-36.37c-1.61-10.41-8.58-26.66-27.02-29.64h.01Z" class="cls-4" /> 42 </g> 43 </g> 44 <g style="clip-path:url(#clippath-1)"> 45 <g id="g10"> 46 <path id="path7" d="M106.61 248.48c3.46 10.08-22.7 20.14-7.84 37.91" style="stroke:#f3c571;stroke-width:5px;fill:none" /> 47 <path id="AZ" d="M67.93-1.2s-22.9 35.01-17.99 46.04 32.1 15.9
476 28.09 29.41c-2.95 9.87-28.24 5.24-33.44 17.92-5.2 12.68 36.4 28.38 24.52 47.04-10.5 16.48-3.08 33.73 7.13 44.79 11.6 12.54 24.78 17.51 25.63 27.28-2.12 4.84-2.37 11.19-2.68 18.06 0 27.33 22.83 29.21 40.52 5.52 6.97-9.34 17.04-15.57 21.47-15.16 4.42.42 11.37 6.72 16.72 11.42 5.05 4.45 17.72 15.61 30.98 9.86 22-9.55-2.44-50.02 8.17-77.8 13.68-35.83 48.75-38.23 65.39-60.32" style="stroke-width:6px;stroke:#e08584;stroke-linecap:round;stroke-linejoin:round;fill:none" /> 48 </g> 49 </g> 50 <g id="houses"> 51 <path id="rect10" d="m37.08 194.51 2.68 6.25-13.49 5.86-2.69-6.24 13.5-5.87z" class="cls-1" /> 52 <path id="rect12" d="M43.42 192.22h9.04v6.51h-9.04z" class="cls-1" transform="rotate(-5.18 47.874 195.332)" /> 53 <path id="polygon13" d="m79.74 165.09 3.33-13.86 7.79 1.57-4.21 16.05-3.88 5.74-6.46-4.42 3.43-5.08z" class="cls-1" /> 54 <path id="rect11" d="m60.04 32.39 3.98-7.53 10.79 5.75-3.98 7.53-10.79-5.75z" class="cls-1" /> 55 <path id="rect13" d="m74.24 5.01 7.3 3.94-8.78 16.42-7.3-3.94 8.78-16.42z" class="cls-1" /> 56 </g> 57 <path id="path14" d="m0 .39 20.11 67.69-18.77 64.33 17.43 73.08-16.76 78.13 276.67.38 15.94-78.85-17.09-73.01 21.45-64.04L279.57 0S1 .07 0 .4Z" style="stroke:#ccc;stroke-width:.74px;fill:none" /> 58 </g> 59 <g style="clip-path:url(#clippath-2)"> 60 <g id="g13"> 61 <path id="green" d="M324.19-70.49c2.18-5.24-203.75-3.1-219.24-1.55-15.5 1.55-88.32 7.74-46.48 71.28 22 33.4-27.11 44.93-13.17 68.95 7.7 13.27 22.47 12.39 20.04 37.88 5.55 22.94 11.41 38.43 32 68.82 13.49 19.91 37.41 36.48 80.64 37.08 18.24.26 53.43-13.8 66.92-12.46-18.59 13.95-15.35 48.72-15.75 55.68-.43 7.42-8.36 9.99-14.46 19.65-6.98 11.03-1.47 36.73 17.33 62.94l91.42-1.55s-1.41-401.49.78-406.73h-.03Z" class="cls-5" /> 62 <path id="yellow" d="M266.62 176.96c-45.04 45.04-118.06 45.04-163.1 0-20.78-20.78-29.73-47.73-33.57-74.7-3.27-22.93 73.76-6.29 81.56-11.02 5.23-3.17 56.32 5.95 58.44.32 7.94-21.09 26.03-15.04 37.54-22.06 9.88-6.01 16.63-24.19 37.54-22.65 2.39.17 30.54-44.09 33.36-39.88 3.27 4.87 4.53 14.95 6.98 20.15 4.56 9.7-23.4 43.84-21.69 54.23 5.82 35.42-9.73 68.28-37.06 95.59h.01Z" style="fill:#ffffc8;stroke-width:0" /> 63 <g id="street"> 64 <g id="use269-2"> 65 <path id="AZ-2" d="M16.26-54.4S-13.59-8.98-7.19 5.33c6.4 14.32 41.84 20.7 36.61 38.13-3.84 12.81-36.8 6.8-43.57 23.24-6.77 16.44 47.45 36.8 31.96 61.01-13.68 21.37-4.02 43.76 9.3 58.1 15.11 16.26 32.3 22.71 33.4 35.38-2.77 6.28-3.1 14.53-3.48 23.44 0 35.44 29.76 37.88 52.79 7.16 9.09-12.11 22.2-20.19 27.97-19.66 5.77.52 14.81 8.71 21.79 14.81 6.59 5.77 23.09 20.26 40.39 12.78 28.67-12.39-3.17-64.86 10.63-100.91 17.82-46.48 63.53-49.58 85.21-78.25" style="stroke:#e08584;stroke-linecap:round;stroke-linejoin:round;stroke-width:10.48px;fill:none" /> 66 </g> 67 </g> 68 <path id="water" d="M190.68 53.48c-24.02-3.87-82.9 2.33-113.67 33.25-18.75 18.84-26.69 68.02-29.82 78.25s-25.3 36.59-29.66 41.4-23.02 7.11-33.1 8.94c-11.94 2.16-24.57 10.75-28.95 13.84-4.4 3.09-11.24 2.72-15.6 5.08-.08.32-.58 8.79-.79 9.73 8.7-2.81 23.19-7.63 31.41-14.41 9.37-7.71 34.27-7.94 46.67-13.75 12.39-5.81 23.1-35.62 44.52-42.61 21.4-6.99 34.68 21.33 41.28 32.42 6.1 10.24 11.88 19.09 16.41 25.93 4.62 6.99 13.98 23.04 15.17 26.49 2.97 8.58-24.23 31.22-27.11 35.44-2.88 4.22-5.59 25.08-6.26 29.35l8.31-2.63s1.59-19.22 5.32-24.21c5.09-6.79 19.27-17.14 26.92-28.47 1.26 1.64 8.13 6.2 29.35 22.47 11.02 9.58 9.29 22.08 11.32 26.73l9.58.3c-2.14-7.54-2.12-20.6-9.29-28.49-8.74-9.61-27.61-18.87-42.24-36.93-4.02-4.96-8.21-14.17-13.19-22.22-1.02-1.65-3.87-6.29-6.33-10.91-6.52-18.52 13.37-33.6 12.94-54.54-.36-17.38 3.19-36.75 17.12-40.43 17.23-4.56 22.96 9.97 40.43 15.66s37.57-27.53 34.52-47.18c-2.1-13.51-11.18-34.57-35.2-38.45l-.04-.05Z" class="cls-4" /> 69 </g> 70 </g> 71 <g id="Verkehrswende_icons"> 72 <circle id="circle21" cx="198.13" cy="114.13" r="88.79" style="fill:#376feb;stroke-width:0" /> 73 <g id="g23"> 74 <path id="path5284" d="M247.12 142.87c-.15.04-.29.07-.44.07h-10.87c-.72 0-1.35-.48-1.56-1.17l-3.39-11.85c-.24-.86.25-1.76 1.11-2 .15-.04.29-.07.44-.07h10.87c.72 0 1.35.48 1.56 1.18l3.39 11.86c.24.86-.25 1.76-1.11 2v-.03Zm-17.04 0c-.15.04-.29.07-.44.07h-10.87c-.72 0-1.35-.48-1.56-1.17l-3.39-11.85c-.24-.86.25-1.76 1.11-2 .15-.04.29-.07.44-.07h10.87c.72 0 1.35.48 1.56 1.18l3.39 11.86c.24.86-.25 1.76-1.11 2v-.03Zm-17.04 0c-.15.04-.29.07-.44.07h-10.86c-.72 0-1.35-.48-1.56-1.17l-3.39-11.85c-.24-.86.25-1.76 1.11-2 .15-.04.29-.07.44-.07h10.87c.72 0 1.35.48 1.56 1.18l3.39 11.86c.24.86-.25 1.76-1.11 2v-.03Zm-17.02 0c-.15.04-.29.07-.44.07h-10.87c-.72 0-1.35-.48-1.56-1.17l-3.39-11.85c-.24-.86.25-1.76 1.11-2 .15-.04.29-.07.44-.07h10.87c.72 0 1.35.48 1.56 1.18l3.39 11.86c.24.86-.25 1.76-1.11 2v-.03Zm-17.04 0c-.15.04-.29.07-.44.07h-11.33c-.9 0-1.61-.72-1.61-1.62v-11.85c0-.9.72-1.62 1.61-1.
7462h7.95c.72 0 1.35.48 1.56 1.18l3.39 11.85c.24.86-.25 1.76-1.11 2h-.01Zm-16.19-1.55c0 .9-.72 1.62-1.62 1.62h-12.91c-.9 0-1.62-.72-1.62-1.62 0-.19.03-.38.09-.55l4.24-11.85c.23-.64.84-1.07 1.51-1.07h8.67c.9 0 1.62.72 1.62 1.62v11.85h.01Zm91.81.75-4.4-15.4a4.323 4.323 0 0 0-4.14-3.12h-97.93c-.59 0-1.09.48-1.09 1.07v2.16c0 .51.36.95.86 1.06.05 0 .09.03.15.04.56.2.86.82.66 1.38l-5.59 15.66c-.25.7-.38 1.43-.38 2.17v10.95c0 1.19.97 2.16 2.16 2.16h12.94c0-5.36 4.34-9.71 9.71-9.71s9.71 4.34 9.71 9.71h39.88c0-5.36 4.34-9.71 9.71-9.71s9.71 4.34 9.71 9.71h14.01c2.39 0 4.32-1.93 4.32-4.32v-12.02c0-.6-.08-1.19-.25-1.77" class="cls-8" /> 75 <path id="path5286" d="M234.37 160.18c0 4.17-3.38 7.55-7.55 7.55s-7.55-3.38-7.55-7.55 3.38-7.55 7.55-7.55 7.55 3.38 7.55 7.55" class="cls-8" /> 76 <path id="path5288" d="M175.08 160.18c0 4.17-3.38 7.55-7.55 7.55s-7.55-3.38-7.55-7.55 3.38-7.55 7.55-7.55 7.55 3.38 7.55 7.55" class="cls-8" /> 77 </g> 78 <path id="path13-1" d="M238.98 70.76c.13.11.2.16.25.21 1.26 1.13 2.52 2.27 3.79 3.38.17.15.25.31.24.54v9.64c0 .11 0 .21.01.4 1.07-.56 2.12-1.07 3.11-1.64.78-.44 1.15-1.18 1.25-2.05.03-.23.05-.44.05-.67.03-2.2.05-4.4.05-6.6 0-1.18-.4-2.23-1.23-3.08-.35-.36-.71-.74-1.1-1.05-2.59-2.06-5.2-4.12-7.78-6.19-1.29-1.05-2.72-1.42-4.34-1.41-1.94.03-3.45.78-4.54 2.36-.86 1.23-1.73 2.45-2.52 3.73-3.35 5.34-6.68 10.68-10.01 16.03-.05.08-.09.16-.15.27.76.19 1.49.39 2.23.56 1.1.25 2.08-.04 2.83-.86.72-.78 1.45-1.57 2.05-2.44 1.78-2.6 3.5-5.24 5.24-7.87.07-.09.13-.19.24-.34.03 3.87.07 7.67.09 11.52h10.23V70.75Zm-10.02 15.98c-.05.28-.09.54-.15.78-.21.95-.67 1.8-1.15 2.64-4.29 7.57-8.39 15.24-12.48 22.94-.07.12-.12.24-.21.44 1.15.03 2.24.09 3.32.07 1.26-.03 2.27-.63 3.07-1.57.29-.35.6-.68.84-1.07.95-1.57 1.94-3.12 2.79-4.75 2.84-5.44 5.62-10.91 8.42-16.38.05-.11.11-.2.19-.35 4.61 8.27 9.18 16.48 13.75 24.69.03 0 .07 0 .09.01.58-1.21 1.19-2.41 1.73-3.65.4-.94.44-1.94.11-2.92-.29-.86-.6-1.73-1.02-2.53-1.37-2.63-2.77-5.25-4.2-7.86-1.43-2.6-2.92-5.17-4.38-7.75-.39-.68-.72-1.38-.79-2.19-.01-.19-.03-.38-.04-.58h-9.92.03Zm2.29-36.61c-2.82 0-5.12 2.27-5.13 5.08 0 2.84 2.28 5.13 5.11 5.13s5.09-2.27 5.12-5.07a5.11 5.11 0 0 0-5.09-5.15Z" class="cls-8" /> 79 <path id="path17" d="m180.29 102.6.07.51c.44 3.55 2.4 6.76 5.36 8.82 3 2.08 6.66 2.75 10.32 1.89 4.61-1.1 8.24-4.81 9.26-9.44.84-3.86-.05-7.8-2.47-10.82-3.06-3.81-8.04-5.55-12.96-4.36l-.44.11-3.12-6.22 2.68-3.7h4.81c.54 0 1.02-.21 1.38-.6.36-.39.55-.91.51-1.45-.07-.99-.92-1.77-1.94-1.77H188c-.6 0-1.19.31-1.54.8l-3 4.18h-16.73l4.2-7.79h3.02c.54 0 1.02-.21 1.38-.6.36-.39.55-.91.51-1.45-.07-.95-.84-1.7-1.8-1.77l-.21.04h-3.59c-1.01 0-1.93.55-2.41 1.43l-10.36 19.18-.46-.15c-1.25-.4-2.52-.6-3.82-.6-.28 0-.56 0-.83.03-6.37.4-11.43 5.51-11.82 11.88-.21 3.62 1.13 7.16 3.67 9.71s6.07 3.9 9.69 3.7c6.39-.36 11.53-5.44 11.93-11.81.27-4.1-1.46-8.08-4.64-10.67l-.38-.31 2.96-5.47 9.3 15.74c.34.59.97.94 1.64.94h5.59Zm-19.05-1.11c0 4.42-3.59 8.02-8.02 8.02s-8.03-3.59-8.03-8.02 3.61-8.02 8.03-8.02c.48 0 .9.03 1.26.11l.78.15-3.71 6.89c-.24.44-.29.97-.15 1.45s.47.88.91 1.13c.92.5 2.08.16 2.57-.76l3.27-6.06v-1.37l1.01 1.1a8.048 8.048 0 0 1 2.08 5.39Zm31.74-8.04c2.16 0 4.2.84 5.71 2.4a7.997 7.997 0 0 1 2.31 5.8c-.09 4.29-3.54 7.75-7.82 7.87h-.2c-3.74 0-7.01-2.6-7.84-6.25l-.16-.71h7.47c.76 0 1.47-.39 1.88-1.05.42-.67.46-1.49.11-2.2l-2.92-5.87h1.47Zm-9.19-6.88 6.09 12.17h-14.84l8.75-12.17Zm-10.43 8-6.05-10.21h13.37l-.64.91-6.69 9.3h.01Z" class="cls-8" /> 80 </g> 81 <g id="Lupe"> 82 <path id="path15" d="m58.16 267.96-13.84-13.84c-.91-.91-1.04-2.27-.28-3.04l84.46-75.87c.75-.75 2.13-.63 3.04.28l5.26 5.26c.91.91 1.04 2.27.28 3.04l-75.87 84.46c-.75.75-2.13.63-3.04-.28Z" style="fill:#000;stroke-width:11.07px;stroke-miterlimit:13.45;stroke:#000" /> 83 <circle id="circle15" cx="198.13" cy="114.13" r="88.79" style="stroke-miterlimit:13.45;stroke:#000;stroke-width:15.47px;fill:none" /> 84 </g> 85</svg> <h1 class="text-xl leading-none font-semibold"> <span class="hidden lg:inline">OSM </span> <span class="lg:hidden">OSM</span> Cycling Quality Index </h1> </a> </div> <style>astro-island,astro-slot,astro-static-slot{display:contents}</style>
85<script>(()=>{var e=async t=>{await(await t())()};(self.Astro||(self.Astro={})).load=e;window.dispatchEvent(new Event("astro:load"));})();</script>
85<script>(()=>{var g=Object.defineProperty;var w=(c,s,d)=>s in c?g(c,s,{enumerable:!0,configurable:!0,writable:!0,value:d}):c[s]=d;var l=(c,s,d)=>w(c,typeof s!="symbol"?s+"":s,d);var E=new Set(["__proto__","constructor","prototype"]);{let c={0:t=>y(t),1:t=>d(t),2:t=>new RegExp(t),3:t=>new Date(t),4:t=>new Map(d(t)),5:t=>new Set(d(t)),6:t=>BigInt(t),7:t=>new URL(t),8:t=>new Uint8Array(t),9:t=>new Uint16Array(t),10:t=>new Uint32Array(t),11:t=>Number.POSITIVE_INFINITY*t},s=t=>{let[p,e]=t;return p in c?c[p](e):void 0},d=t=>t.map(s),y=t=>typeof t!="object"||t===null?t:Object.fromEntries(Object.entries(t).map(([p,e])=>[p,s(e)]));class f extends HTMLElement{constructor(){super(...arguments);l(this,"Component");l(this,"hydrator");l(this,"hydrate",async()=>{var b;if(!this.hydrator||!this.isConnected)return;let e=(b=this.parentElement)==null?void 0:b.closest("astro-island[ssr]");if(e){e.addEventListener("astro:hydrate",this.hydrate,{once:!0});return}let n=this.querySelectorAll("astro-slot"),r={},i=this.querySelectorAll("template[data-astro-template]");for(let o of i){let a=o.closest(this.tagName);a!=null&&a.isSameNode(this)&&(r[o.getAttribute("data-astro-template")||"default"]=o.innerHTML,o.remove())}for(let o of n){let a=o.closest(this.tagName);a!=null&&a.isSameNode(this)&&(r[o.getAttribute("name")||"default"]=o.innerHTML)}let u;try{u=this.hasAttribute("props")?y(JSON.parse(this.getAttribute("props"))):{}}catch(o){let a=this.getAttribute("component-url")||"<unknown>",v=this.getAttribute("component-export");throw v&&(a+=` (export ${v})`),console.error(`[hydrate] Error parsing props for component ${a}`,this.getAttribute("props"),o),o}let h;await this.hydrator(this)(this.Component,u,r,{client:this.getAttribute("client")}),this.removeAttribute("ssr"),this.dispatchEvent(new CustomEvent("astro:hydrate"))});l(this,"unmount",()=>{this.isConnected||this.dispatchEvent(new CustomEvent("astro:unmount"))})}disconnectedCallback(){document.removeEventListener("astro:after-swap",this.unmount),document.addEventListener("astro:after-swap",this.unmount,{once:!0})}connectedCallback(){if(!this.hasAttribute("await-children")||document.readyState==="interactive"||document.readyState==="complete")this.childrenConnectedCallback();else{let e=()=>{document.removeEventListener("DOMContentLoaded",e),n.disconnect(),this.childrenConnectedCallback()},n=new MutationObserver(()=>{var r;((r=this.lastChild)==null?void 0:r.nodeType)===Node.COMMENT_NODE&&this.lastChild.nodeValue==="astro:end"&&(this.lastChild.remove(),e())});n.observe(this,{childList:!0}),document.addEventListener("DOMContentLoaded",e)}}async childrenConnectedCallback(){let e=this.getAttribute("before-hydration-url");e&&await import(e),this.start()}getRetryImportUrl(e){let n=new URL(e,document.baseURI),r=`astro-retry=${Date.now()}`,i=n.hash.replace(/^#/,"");return n.hash=i?`${i}&${r}`:r,n.toString()}async importWithRetry(e){try{return await import(e)}catch(n){return await new Promise(r=>setTimeout(r,1e3)),import(this.getRetryImportUrl(e))}}handleHydrationError(e){let n=this.getAttribute("component-url"),r=new CustomEvent("astro:hydration-error",{cancelable:!0,bubbles:!0,composed:!0,detail:{error:e,componentUrl:n}});this.dispatchEvent(r)&&console.error(`[astro-island] Error hydrating ${n}`,e)}async start(){let e=JSON.parse(this.getAttribute("opts")),n=this.getAttribute("client");if(Astro[n]===void 0){window.addEventListener(`astro:${n}`,()=>this.start(),{once:!0});return}try{await Astro[n](async()=>{let r=this.getAttribute("renderer-url");try{let[i,{default:u}]=await Promise.all([this.importWithRetry(this.getAttribute("component-url")),r?this.importWithRetry(r):Promise.resolve({default:()=>()=>{}})]),h=this.getAttribute("component-export")||"default";if(h.includes(".")){this.Component=i;for(let m of h.split(".")){if(E.has(m)||!this.Component||typeof this.Component!="object"&&typeof this.Component!="function"||!Object.hasOwn(this.Component,m))throw new Error(`Invalid component export path: ${h}`);this.Component=this.Component[m]}}else{if(E.has(h))throw new Error(`Invalid component export path: ${h}`);this.Component=i[h]}return this.hydrator=u,this.hydrate}catch(i){return this.handleHydrationError(i),()=>{}}},e,this)}catch(r){this.handleHydrationError(r)}}attributeChangedCallback(){this.hydrate()}}l(f,"observedAttributes",["props"]),customElements.get("astro-island")||customElements.define("astro-island",f)}})();</script>
85<astro-island uid="Z118usd" prefix="r1" component-url="/_astro/NavigationMobile.C6dlhrec.js" component-export="NavigationMobile" renderer-url="/_astro/client.XSJxHH5Z.js" props="{}" ssr client="load" opts="{"name":"NavigationMobile","value":true}" await-children><div class="lg:hidden"><div class="inline-block text-left" data-headlessui-state=""><button class="inline-flex w-full items-center justify-center gap-2 rounded-md border border-gray-200 bg-white py-2 pr-2 pl-4 font-medium hover:border-gray-300 hover:bg-blue-50 focus:outline-hidden focus-visible:ring-2 focus-visible:ring-white/75" type="button" aria-expanded="false" data-headlessui-state="">Menu<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="h-8 w-8" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M2.5 12a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5z"></path></svg></button></div><span hidden="" style="position:fixed;top:1px;left:1px;width:1px;height:0;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;display:none"></span></div><template data-astro-template> <div class="mt-5 mb-7 flex flex-col overflow-hidden rounded-sm border border-b-0 border-gray-200 sm:mt-0"><a href="/cqi/" class="bg-emerald-50 hover:bg-emerald-50 cursor-text font-semibold group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="true"> Ãber das Projekt </a><a href="/cqi/improve-data/" class="hover:bg-blue-50 group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="false"> Mitmachen </a></div><h2 class="my-2 text-xl font-semibold text-black"> Karte </h2><div class="mt-5 mb-7 flex flex-col overflow-hidden rounded-sm border border-b-0 border-gray-200 sm:mt-0"><a href="/cqi/map/" class="hover:bg-blue-50 group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="false"> Karte </a><a href="/cqi/routing/" class="hover:bg-blue-50 group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="false"> Routing (PLANNED) </a><a href="/cqi/regions/" class="hover:bg-blue-50 group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="false"> Other regions </a></div><h2 class="my-2 text-xl font-semibold text-black"> <a href="/posts" class> 86Neuigkeiten <span class="text-gray-500">(2)</span> </a> </h2><div class="mt-5 mb-7 flex flex-col rounded-sm border border-b-0 border-gray-200 sm:mt-0 overflow-hidden"> <a href="/cqi/posts/2024-03-23-next" class="hover:bg-blue-50 group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="false" title="Next Steps and FAQs for This Project"> <span class="mr-1 -ml-1.5 inline-flex rounded-full bg-gray-100 px-1.5 py-0.5 text-xs text-gray-500">2024/03</span>Next Steps / FAQ </a><a href="/cqi/posts/2024-01-01-cqi-fossgis-2024" class="hover:bg-blue-50 group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="false" title="FOSSGIS Vortrag "Radnetz-Qualität mit OpenStreetMap-Daten auswerten""> <span class="mr-1 -ml-1.5 inline-flex rounded-full bg-gray-100 px-1.5 py-0.5 text-xs text-gray-500">2024/01</span>FOSSGIS 2024 </a> </div><ul class="prose prose-sm mb-4 ml-3 block leading-snug"> <li> <a class="block pb-3 underline hover:text-gray-500" href="https://github.com/SupaplexOSM/OSM-Cycling-Quality-Index"> Github: Code für den Index </a> </li> <li> <a class="block pb-3 underline hover:text-gray-500" href="https://github.com/osmberlin/www.osm-verkehrswende.org"> 87Github: Code für die Website 88</a> </li> <li> <a class="block pb-3 underline hover:text-gray-500" href="/contact" lang="de"> 89Kontakt & <br>Datenschutz & <br>Impressum 90</a> </li> </ul> </template><!--astro:end--></astro-island> <div class="z-2000 hidden transition-all duration-150 lg:block"> <div class="mt-5 mb-7 flex flex-col overflow-hidden rounded-sm border border-b-0 border-gray-200 sm:mt-0"><a href="/cqi/" class="bg-emerald-50 hover:bg-emerald-50 cursor-text font-semibold group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="true"> Ãber das Projekt </a><a href="/cqi/improve-data/" class="hover:bg-blue-50 group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="false"> Mitmachen </a></div><h2 class="my-2 text-xl font-semibold text-black"> Karte </h2><div class="mt-5 mb-7 flex flex-col overflow-hidden rounded-sm border border-b-0 border-gray-200 sm:mt-0"><a href="/cqi/map/" class="hover:bg-blue-50 group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="false"> Karte </a><a href="/cqi/routing/" class="hover:bg-blue-50 group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="false">
90 Routing (PLANNED) </a><a href="/cqi/regions/" class="hover:bg-blue-50 group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="false"> Other regions </a></div><h2 class="my-2 text-xl font-semibold text-black"> <a href="/posts" class> 91Neuigkeiten <span class="text-gray-500">(2)</span> </a> </h2><div class="mt-5 mb-7 flex flex-col rounded-sm border border-b-0 border-gray-200 sm:mt-0 overflow-hidden"> <a href="/cqi/posts/2024-03-23-next" class="hover:bg-blue-50 group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="false" title="Next Steps and FAQs for This Project"> <span class="mr-1 -ml-1.5 inline-flex rounded-full bg-gray-100 px-1.5 py-0.5 text-xs text-gray-500">2024/03</span>Next Steps / FAQ </a><a href="/cqi/posts/2024-01-01-cqi-fossgis-2024" class="hover:bg-blue-50 group/item flex justify-between border-b border-gray-200 py-2.5 pr-2 pl-4 leading-tight items-center" data-item-active-debugger="false" title="FOSSGIS Vortrag "Radnetz-Qualität mit OpenStreetMap-Daten auswerten""> <span class="mr-1 -ml-1.5 inline-flex rounded-full bg-gray-100 px-1.5 py-0.5 text-xs text-gray-500">2024/01</span>FOSSGIS 2024 </a> </div><ul class="prose prose-sm mb-4 ml-3 block leading-snug"> <li> <a class="block pb-3 underline hover:text-gray-500" href="https://github.com/SupaplexOSM/OSM-Cycling-Quality-Index"> Github: Code für den Index </a> </li> <li> <a class="block pb-3 underline hover:text-gray-500" href="https://github.com/osmberlin/www.osm-verkehrswende.org"> 92Github: Code für die Website 93</a> </li> <li> <a class="block pb-3 underline hover:text-gray-500" href="/contact" lang="de"> 94Kontakt & <br>Datenschutz & <br>Impressum 95</a> </li> </ul> </div> </nav> <main class="flex-1 px-4 py-6 lg:px-0 lg:pl-5"> <header> <h1 class="bg-linear-to-br from-teal-500 to-emerald-400 bg-clip-text pb-2 text-4xl leading-8 font-extrabold text-transparent md:text-6xl md:leading-[3.25rem]"> Cycling Quality Index </h1> <p class="mb-20 text-3xl font-bold text-sky-700">Eine Klassifizierung der Fahrradfreundlichkeit und -eignung des StraÃennetzes</p> </header> <section class="group relative mb-20 rounded-sm prose prose-lg prose-blue max-w-prose prose-headings:mb-5 prose-headings:text-sky-700 first:prose-headings:mt-0 bg-emerald-100 p-4"> <p> 96Mit einem OSM-basierten Radverkehrs-Qualitätsindex möchten wir eine niedrigschwellige Methode 97 zur Analyse von Radnetzen bereitstellen. Auf dieser Projektseite geben wir Einblicke in den 98 Proof Of Concept aus Berlin, wo wir detaillierte OSM-Daten zur Bewertung der Radinfrastruktur 99 erhoben und ausgewertet haben. Ein solcher Index macht Lücken im Netz und somit 100 Handlungsbedarf für die Verkehrsplanung sichtbar und zeigt, wie klein der Bewegungsradius für 101 vulnerable Gruppen wie Kinder auf dem Fahrrad zum Teil ist. 102</p> </section> <section class="group relative mb-20 rounded-sm prose prose-lg prose-blue max-w-prose prose-headings:mb-5 prose-headings:text-sky-700 first:prose-headings:mt-0 flex gap-4"> <a href="/cqi/map" class="flex grow flex-col items-center justify-center rounded-sm bg-gray-100 pt-5 hover:bg-green-100"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="size-10"> <path fill-rule="evenodd" d="M8.157 2.176a1.5 1.5 0 0 0-1.147 0l-4.084 1.69A1.5 1.5 0 0 0 2 5.25v10.877a1.5 1.5 0 0 0 2.074 1.386l3.51-1.452 4.26 1.762a1.5 1.5 0 0 0 1.146 0l4.083-1.69A1.5 1.5 0 0 0 18 14.75V3.872a1.5 1.5 0 0 0-2.073-1.386l-3.51 1.452-4.26-1.762ZM7.58 5a.75.75 0 0 1 .75.75v6.5a.75.75 0 0 1-1.5 0v-6.5A.75.75 0 0 1 7.58 5Zm5.59 2.75a.75.75 0 0 0-1.5 0v6.5a.75.75 0 0 0 1.5 0v-6.5Z" clip-rule="evenodd"></path> </svg> <h2 class="mt-1 mb-3 py-0">Karte</h2> </a> <a href="/cqi/posts/2024-01-01-cqi-fossgis-2024" class="flex grow flex-col items-center justify-center rounded-sm bg-gray-100 pt-5 hover:bg-green-100"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="size-10"> <path fill-rule="evenodd" d="M1 2.75A.75.75 0 0 1 1.75 2h16.5a.75.75 0 0 1 0 1.5H18v8.75A2.75 2.75 0 0 1 15.25 15h-1.072l.798 3.06a.75.75 0 0 1-1.452.38L13.41 18H6.59l-.114.44a.75.75 0 0 1-1.452-.38L5.823 15H4.75A2.75 2.75 0 0 1 2 12.25V3.5h-.25A.75.75 0 0 1 1 2.75ZM7.373 15l-.391 1.5h6.037l-.392-1.5H7.373Zm7.49-8.931
102a.75.75 0 0 1-.175 1.046 19.326 19.326 0 0 0-3.398 3.098.75.75 0 0 1-1.097.04L8.5 8.561l-2.22 2.22A.75.75 0 1 1 5.22 9.72l2.75-2.75a.75.75 0 0 1 1.06 0l1.664 1.663a20.786 20.786 0 0 1 3.122-2.74.75.75 0 0 1 1.046.176Z" clip-rule="evenodd"></path> </svg> <h2 class="mt-1 mb-3 py-0">Vortrag</h2> </a> </section> <section class="group relative mb-20 rounded-sm prose prose-lg prose-blue max-w-prose prose-headings:mb-5 prose-headings:text-sky-700 first:prose-headings:mt-0"> <h2 id="qualitaet">Radnetz-Qualität mit OpenStreetMap-Daten auswerten</h2> <p> 103Die Eignung von StraÃen und Wegen für den Radverkehr rückt im Zuge der Verkehrswende immer 104 weiter in den Fokus von Stadtentwicklung und Verkehrsplanung. Und auch in OpenStreetMap hat 105 sich in den vergangenen Jahren in Punkto Radverkehr viel getan: Vielerorts werden immer mehr 106 und zunehmend vollständige Daten zum Radverkehr erfasst und die Standardisierung 107 entsprechender Tagging-Schemata ist spürbar vorangeschritten. 108</p> <p> 109In der Verkehrsplanung, der Wissenschaft und der GIS-Praxis finden sich eine Vielzahl von 110 Fahrrad-Qualitäts-Indizes, die Daten zum Radverkehr mit unterschiedlichen methodischen 111 Ansätzen analysieren. Für viele werden inzwischen OSM-Daten herangezogen: Entweder, um 112 fahrradfreundliche Strukturen und Umweltfaktoren abzuleiten oder das Wegenetz hinsichtlich 113 vorhandener Radinfrastruktur zu bewerten. Letzteres bietet jedoch meist nur ein 114 eingeschränktes Bild: Denn was sagt es aus, ob es einen physisch separierten Radweg gibt, wenn 115 man nicht einschätzen kann, wie schmal und holperig er vielleicht ist? 116</p> <p> 117OSM bietet jedoch eine optimale Datenbank, um auch detaillierte Radwegattribute systematisch 118 und vergleichbar zu erfassen und damit weitergehende Infrastrukturanalysen zu ermöglichen. 119 Während in der Vergangenheit vor allem die Existenz von Radwegen erfasst wurde, geraten 120 zunehmend physische Details wie Breiten, Oberflächen oder Charakteristika der Trennung zu 121 anderen Verkehrsarten in den Fokus. Ein gestiegenes Bewusstsein für den Mehrwert solcher Daten
122 und neue Tools unterstützen diese Tendenz. 123</p> <p> 124Diese Fortschritte haben wir zum Anlass genommen, die Entwicklung eines detaillieren, 125 OSM-basierten Radverkehrs-Qualitätsindex zu starten. Damit lassen sich Radnetze vergleichbar 126 analysieren, Lücken im Radverkehrsnetz identifizieren oder anschaulich zeigen, wie klein der 127 Bewegungsradius für vulnerable Gruppen wie Kinder oder ältere Menschen auf Fahrrädern 128 vielerorts noch immer ist. Solche Daten verfügbar zu machen kann einen groÃen Mehrwert für 129 Planungsprozesse bieten, um gezielte PlanungsmaÃnahmen mit einer Perspektive auf komplette 130 Netze statt einer Aneinanderreihung von EinzelmaÃnahmen zu unterstützen. 131</p> <p> 132Alex Seidel hat in <a href="/cqi/posts/2024-01-01-cqi-fossgis-2024">seinem Vortrag auf der FOSSGIS Konferenz 2024</a> seine Ãberlegungen und ersten Ergebnisse für diesen Index vorgestellt, den wir in unserer Modellregion 133 Berlin-Neukölln entwickelt, getestet und visualisiert haben. Dieser kann ein Aufschlag sein, um 134 gemeinsam mit der Community einen offenen Index bereitstellen zu können, der sich â entsprechend 135 gut gemappte OSM-Daten vorrausgesetzt â weltweit frei, niedrigschwellig und individuell anpassbar 136 anwenden lässt. 137</p> </section> </main> </div> </body></html>
137<script> 138 // http://blog.parkermoore.de/2014/08/01/header-anchor-links-in-vanilla-javascript-for-github-pages-and-jekyll/ 139 140 const anchorForId = function (id) { 141 const anchor = document.createElement('a') 142 anchor.href = `#${id}` 143 anchor.className = 144 'print:hidden relative left-1.5 opacity-50 hover:opacity-100 transition-all inline-flex justify-center' 145 // https://icons.getbootstrap.com/icons/link/ 146 const svgClassNames = 'inline-flex w-5 h-5' 147 anchor.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" class="${svgClassNames}" fill="currentColor" viewBox="0 0 15 15"> 148 <path d="M6.354 5.5H4a3 3 0 0 0 0 6h3a3 3 0 0 0 2.83-4H9c-.086 0-.17.01-.25.031A2 2 0 0 1 7 10.5H4a2 2 0 1 1 0-4h1.535c.218-.376.495-.714.82-1z"/> 149 <path d="M9 5.5a3 3 0 0 0-2.83 4h1.098A2 2 0 0 1 9 6.5h3a2 2 0 1 1 0 4h-1.535a4.02 4.02 0 0 1-.82 1H12a3 3 0 1 0 0-6H9z"/> 150 </svg >` 151 return anchor 152 } 153 154 const linkifyAnchors = function (level, containingElement) { 155 const headers = containingElement.getElementsByTagName('h' + level) 156 for (let h = 0; h < headers.length; h++) { 157 const header = headers[h] 158 159 if (typeof header.id !== 'undefined' && header.id !== '') { 160 header.appendChild(anchorForId(header.id)) 161 } 162 } 163 } 164 165 document.onreadystatechange = function () { 166 if (this.readyState === 'complete') { 167 const contentBlock = document.getElementsByTagName('body')[0] 168 if (!contentBlock) { 169 return 170 } 171 for (let level = 2; level <= 6; level++) { 172 linkifyAnchors(level, contentBlock) 173 } 174 } 175 } 176</script>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.