PageSourceSearch

https://www.osm-verkehrswende.org/cqi/

html osm-verkehrswende.org collected 2026-10-04 00:16:06 UTC 34,949 bytes, 176 lines download raw bytes

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="{&quot;name&quot;:&quot;NavigationMobile&quot;,&quot;value&quot;: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 &quot;Radnetz-Qualität mit OpenStreetMap-Daten auswerten&quot;"> <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 &quot;Radnetz-Qualität mit OpenStreetMap-Daten auswerten&quot;"> <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.