Repository navigation
Use Case: Regulate dynamic flex smart zoning of multiple uses per day
Note: this is a specific implementation of use case from the CDS Examples page.
This example supports the CDS use case " Regulate dynamic flex/smart zoning of multiple uses per day" It shows how the Curb Data Specification (CDS) describes a city's curb and signals which activities are allowable or restricted at different times of the day, using a single multi-functional block of Main Street and the API responses a CDS server returns. Street names and coordinates are illustrative.
We use three CDS objects to describe the curb groupings:
- Curb Area: the parent grouping of the zones, here this is the block face.
- Curb Zone: a stretch of curb on the block face under a set of rules.
- Curb Policy: the rules, meaning who may do what and when. A zone references one or more policies.
Block A (100 block) has 3 curbzones:
(1) No parking all day everyday,
(2) Commercial Vehicle Loading Zone from 6 AM to 1 PM and Paid Parking from 1 PM to 8 PM Mon - Fri, Paid Parking 8 AM to 8 PM Sat,
(3) Paid Parking from 8 AM to 8 PM Mon - Sat.
Zones 2 and 3 offer free parking outside of their stated regulations.
All zones get the base level paid and unrestricted parking policies (priority = 99) that apply to this paid area. Then, we layer on zone-specific policies for No parking (Zone 1, priority 1) and CVLZ (Zone 2, priority 20). These policies have higher priority when the times overlap.
Zone 1: There is always a no parking policy with higher priority than the baseline parking policy.
Zone 2: On Monday to Friday from 6 am to 1 pm, there is a Commercial Vehicle Loading policy that is higher priority than the baseline parking policy. At all other days/times, the baseline parking policy applies.
Zone 3: There are no extra policies for this zone, so the baseline parking policy always applies.
{
"policies": [
{
"curb_policy_id": "9999999a-3765-4f0b-a72e-7caf7cf3fe21",
"name": "unrestricted_parking_mon_to_sat_until_8am",
"published_date": 1552678594428,
"priority": 99,
"rules": [
{
"activity": "parking"
}
],
"time_spans": [
{
"days_of_week": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat"
],
"time_of_day_start": "00:00",
"time_of_day_end": "07:59"
}
],
},
{
"curb_policy_id": "9999999b-3765-4f0b-a72e-7caf7cf3fe21",
"name": "unrestricted_parking_mon_to_sat_after_8pm",
"published_date": 1552678594428,
"priority": 99,
"rules": [
{
"activity": "parking"
}
],
"time_spans": [
{
"days_of_week": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat"
],
"time_of_day_start": "20:00",
"time_of_day_end": "23:59"
}
],
},
{
"curb_policy_id": "9999999c-3765-4f0b-a72e-7caf7cf3fe21",
"name": "unrestricted_parking_sun",
"published_date": 1552678594428,
"priority": 99,
"rules": [
{
"activity": "parking"
}
],
"time_spans": [
{
"days_of_week": [
"sun"
],
"time_of_day_start": "00:00",
"time_of_day_end": "23:59"
}
],
},
{
"curb_policy_id": "11111111-1042-4254-b5fc-fed97124a6c7",
"name": "24_hour_no_parking_everyday",
"published_date": 1552678857362,
"priority": 1,
"time_spans": [
{
"days_of_week": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat",
"sun"
],
"time_of_day_start": "00:00",
"time_of_day_end": "23:59"
}
],
"rules": [
{
"activity": "no parking"
}
]
},
{
"curb_policy_id": "80808080-b8d2-469e-bdb1-b6de52c430ac",
"name": "paid_parking_8to8_MontoSat",
"published_date": 1552678857362,
"priority": 99,
"time_spans": [
{
"days_of_week": [
"mon",
"tue",
"wed",
"thu",
"fri",
"sat"
],
"time_of_day_start": "08:00",
"time_of_day_end": "19:59"
}
],
"rules": [
{
"activity": "parking",
"max_stay": 120,
"rate": [
{
"rate": 3,
"rate_unit": "hour",
"rate_unit_period": "rolling"
}
]
}
]
},
{
"curb_policy_id": "20202020-3765-4f0b-a72e-7caf7cf3fe21",
"name": "CVLZ_6to1_MontoFri",
"published_date": 1552678594428,
"priority": 20,
"time_spans": [
{
"days_of_week": [
"mon",
"tue",
"wed",
"thu",
"fri"
],
"time_of_day_start": "06:00",
"time_of_day_end": "12:59"
}
],
"rules": [
{
"activity": "loading",
"max_stay": 30,
"user_classes": [
"truck"
],
"purpose": [
"commercial_vehicle_permit"
]
},
{
"activity": "loading",
"max_stay": 30,
"user_classes": [
"truck"
],
"rate": [
{
"rate": 2,
"rate_unit": "hour",
"rate_unit_period": "rolling"
}
]
},
{
"activity": "no parking",
"user_classes_except": [
"truck"
]
}
]
}
]
} {
"zones": [
{
"curb_zone_id": "00000001-e7e2-5500-b395-c4e77c512918",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-79.3892,
43.6512
],
[
-79.3884,
43.6512
],
[
-79.3884,
43.6513
],
[
-79.3892,
43.6513
],
[
-79.3892,
43.6512
]
]
]
},
"curb_policy_ids": [
"9999999a-3765-4f0b-a72e-7caf7cf3fe21",
"9999999b-3765-4f0b-a72e-7caf7cf3fe21",
"9999999c-3765-4f0b-a72e-7caf7cf3fe21",
"80808080-b8d2-469e-bdb1-b6de52c430ac",
"11111111-1042-4254-b5fc-fed97124a6c7"
],
"published_date": 1767247200000,
"last_updated_date": 1767247200000,
"start_date": 1767247200000,
"name": "E14-10-01",
"curb_area_ids": [
"7b03ef54-194f-4d7a-a9f1-52b945fa52d1"
]
},
{
"curb_zone_id": " 00000002-1234-5678-9012-abcdef123456",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-79.3871,
43.6512
],
[
-79.3863,
43.6512
],
[
-79.3863,
43.6513
],
[
-79.3871,
43.6513
],
[
-79.3871,
43.6512
]
]
]
},
"curb_policy_ids": [
"9999999a-3765-4f0b-a72e-7caf7cf3fe21",
"9999999b-3765-4f0b-a72e-7caf7cf3fe21",
"9999999c-3765-4f0b-a72e-7caf7cf3fe21",
"80808080-b8d2-469e-bdb1-b6de52c430ac",
"20202020-3765-4f0b-a72e-7caf7cf3fe21"
],
"published_date": 1767247200000,
"last_updated_date": 1767247200000,
"start_date": 1767247200000,
"name": " E14-10-03",
"curb_area_ids": [
"6b84aa91-4ee6-482d-87ff-b1e474f3ad91"
]
},
{
"curb_zone_id": " 00000003-1234-5678-9012-abcdef123456",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[
-79.3871,
43.6512
],
[
-79.3863,
43.6512
],
[
-79.3863,
43.6513
],
[
-79.3871,
43.6513
],
[
-79.3871,
43.6512
]
]
]
},
"curb_policy_ids": [
"9999999a-3765-4f0b-a72e-7caf7cf3fe21",
"9999999b-3765-4f0b-a72e-7caf7cf3fe21",
"9999999c-3765-4f0b-a72e-7caf7cf3fe21",
"80808080-b8d2-469e-bdb1-b6de52c430ac"
],
"published_date": 1767247200000,
"last_updated_date": 1767247200000,
"start_date": 1767247200000,
"name": " E14-10-05",
"curb_area_ids": [
"6b84aa91-4ee6-482d-87ff-b1e474f3ad91"
]
}
]
} - Curb Wiki Home
- Curb Data Specification (CDS)
- About CDS
- Scope of Work document
- Curb mailing list
- Full Working Group Charter
CDS Links
- CDS Releases
- Policy Language Guidance
- Architectural Decisions
- Pilot Project Guide
- Getting Started Guide
- Curbs Use Cases
1.1.0 Release
1.0.0 Release
