Skip to content

Commit

Permalink
Add links to gulf islands campgrounds
Browse files Browse the repository at this point in the history
  • Loading branch information
villasv committed Aug 18, 2024
1 parent 41ff6cc commit f6af35c
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 26 deletions.
74 changes: 51 additions & 23 deletions app/(aspects)/cycle/packing/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -15,54 +15,82 @@ Resources: [BC Parks Camping][bc-parks] // [Parks Canada Camping][pc-parks] //
### [Parks Canada Sites][parks-canada]
[parks-canada]: https://web.archive.org/web/20240526195011/https://www.canadream.com/Website/media/Files/Parks-Canada-Discovery-Pass-Brochure-Map.pdf

#### [K6: Fort Langley][langley-nhs] <ParkReserveLink park={Park.FortLangleyNHS} />
#### [K6: Fort Langley][langley-nhs]
[langley-nhs]: https://parks.canada.ca/lhn-nhs/bc/langley

- ~30 km cycling from King George
- ~50 km cycling from Waterfront via Central Valley Greenway
- ⛺ oTENTik available (May 15 to Sept 15)

⛺ oTENTik available (May 15 to Sept 15) <ParkReserveLink
park={Park.FortLangleyNHS} />

#### [K7: Gulf Islands National Park Reserve][gulf-np]
[gulf-np]:https://parks.canada.ca/pn-np/bc/gulf

- ⛺ frontcountry campsites available (May 15 to Sept 30)
- 🪵 backcountry campsites available all year round

Routes to Swartz Bay:

- **~01 km taking Canada Line + Summer Bike Bus to Tsawwassen** + Ferry
- ~50 km cycling from New Westminster to Tsawwassen + Ferry
- ~65 km cycling from Waterfront via Central Valley to Tsawwassen + Ferry

Round trip [BC Ferries tickets for this route][swb-tsa] with bicycles costs
about $20 per person. Bike Bus usually runs July through August, [double check
exact dates][bike-bus].
Round trip [SWB-TSA ferries tickets][swb-tsa] with bicycles costs about $20 per
person. Bike Bus usually runs July through August, [double check exact
dates][bike-bus].

[swb-tsa]: https://www.bcferries.com/routes-fares/schedules/daily/SWB-TSA

Three frontcountry campgrounds: SMONEĆTEN on Vancouver Island, Prior Centennial
on Pender Island, and Sidney Spit on Sidney Island. Backcountry campgrounds are
accessible year round but are not regularly maintained from Oct 1 to May 14.
⛺ frontcountry campsites available (May 15 to Sept 30) <ParkReserveLink
park={Park.GulfIslandsNPR} />
- ~03 km to [SMONEĆTEN (Vancouver Island)][smonecten] <ParkReserveLink
park={Park.SMONEĆTEN} />
- ~05 km to [Prior Centennial (Pender Island)][prior-centennial]
<ParkReserveLink park={Park.PriorCentennial} />
- ~?? km to [Sidney Spit (Sidney Island)][sidney-spit] 🚱🚫🚗 <ParkReserveLink
park={Park.SidneySpit} />

##### [SMONEĆTEN][smonecten] <ParkReserveLink park={Park.SMONEĆTEN} />
[smonecten]: https://parks.canada.ca/pn-np/bc/gulf/activ/camping/campinglavantpays-frontcountrycamping#McDonald
[prior-centennial]: https://parks.canada.ca/pn-np/bc/gulf/activ/camping/campinglavantpays-frontcountrycamping#PriorCentennial
[sidney-spit]: https://parks.canada.ca/pn-np/bc/gulf/activ/camping/campinglavantpays-frontcountrycamping#SidneySpit

The most bike-friendly campground is SMONEĆTEN, with access to the Lochside
The most bike-accessible campground is SMONEĆTEN, with access to the Lochside
Cycling Trail (from Swartz Bay to Downtown Victoria) and walk-in sites close to
entrance in pleasant wooded area, and a communal campfire ring. From Swartz Bay
to SMONEĆTEN via Swartz Bay Road it's about 3 km. The downside of this campsite
is being next to a highway; depending on the campsite position it's possible to
hear traffic noise.

##### Prior Centennial <ParkReserveLink park={Park.PriorCentennial} />

##### Pender Island
entrance in pleasant wooded area, and a communal campfire ring. The downside is
that some campsites are too close to the highway. From Swartz Bay to SMONEĆTEN
via Swartz Bay Road it's a 3 km ride.

The most reserved campground is Sidney Spit. It offers sandy beaches, wooded
trails and an abundance of birds and marine life. It does not have potable water
available, but it's not accessible by car so it tends to be easier to book,
though it's necessary to time the [Sidney Ferry][sidney-spit-ferry] too.

[sidney-spit-ferry]: https://www.sidneyspitferry.com/schedule

🪵 backcountry campsites available all year round
- [Narvaez Bay (Saturna Island)][saturna-island] 🚱
- [Single Bay (Pender Island)][pender-island] 🚱
- [D'arcy Island][darcy-island], [Cabbage Island][cabbage-island],
[Isle-de-Lis][isle-de-lis], [Prevost Island][prevost-island], [Portland
Island][portland-island] all have first-come first-served campgrounds; great
for kayak touring.

[saturna-island]: https://parks.canada.ca/pn-np/bc/gulf/activ/camping/campinglarrierepays-backcountrycamping#Saturna
[pender-island]: https://parks.canada.ca/pn-np/bc/gulf/activ/camping/campinglarrierepays-backcountrycamping#Pender
[darcy-island]: https://parks.canada.ca/pn-np/bc/gulf/activ/camping/campinglarrierepays-backcountrycamping#Darcy
[cabbage-island]: https://parks.canada.ca/pn-np/bc/gulf/activ/camping/campinglarrierepays-backcountrycamping#Cabbage
[isle-de-lis]: https://parks.canada.ca/pn-np/bc/gulf/activ/camping/campinglarrierepays-backcountrycamping#Isledelis
[portland-island]: https://parks.canada.ca/pn-np/bc/gulf/activ/camping/campinglarrierepays-backcountrycamping#PrincessMargaret
[prevost-island]: https://parks.canada.ca/pn-np/bc/gulf/activ/camping/campinglarrierepays-backcountrycamping#Prevost

Between Narvaez Bay and Shingle Bay, the former is more bike friendly (short
trail to get there and has bike racks) and the latter is more car accessible
(only a short walk from the parking lot).

Ferry from Tsawwassen to Mayne Island then another to Pender Island.

##### Shingle Bay
#### [K7: Gulf Islands National Park Reserve][gulf-np] - Shingle Bay

##### Narvaez Bay
#### [K7: Gulf Islands National Park Reserve][gulf-np] - Narvaez Bay
- 🪵 backcountry campsites available all year round

#### K8: Fisgard Lighthouse

Expand Down
2 changes: 1 addition & 1 deletion components/park-reserve-link/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import styles from "./styles.module.css";
export async function ParkReserveLink(props: ParkReserveParams) {
const url = getReservationUrl(props);
return (
<a href={url.toString()} className={styles.link}>
<a target="_blank" href={url.toString()} className={styles.link}>
Reserve
</a>
);
Expand Down
22 changes: 20 additions & 2 deletions projects/outdoors/reservations.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
export enum Park {
FortLangleyNHS,
GulfIslandsNPR,
SMONEĆTEN,
PriorCentennial,
SidneySpit,
}

export enum Org {
Expand Down Expand Up @@ -48,7 +50,7 @@ export interface ParkInfo {
group: Group;
category: Category;
mapId: string;
resourceLocationId: string;
resourceLocationId?: string;
equipment?: EquipmentSpec;
}

Expand All @@ -75,7 +77,8 @@ export function getReservationUrl({
url.searchParams.set("searchTabGroupId", group.toString());
url.searchParams.set("bookingCategoryId", category.toString());
url.searchParams.set("mapId", mapId);
url.searchParams.set("resourceLocationId", resourceLocationId);
if (resourceLocationId)
url.searchParams.set("resourceLocationId", resourceLocationId);

const [t1, t2] = todayAndTomorrow();
url.searchParams.set(
Expand Down Expand Up @@ -132,6 +135,13 @@ const PARKS: Record<Park, ParkInfo> = {
mapId: "-2147483535",
resourceLocationId: "-2147483623",
},
[Park.GulfIslandsNPR]: {
org: Org.ParksCanada,
group: Group.Frontcountry,
category: Category.Campsite,
mapId: "-2147483478",
equipment: _defaultEquipSpec,
},
[Park.SMONEĆTEN]: {
org: Org.ParksCanada,
group: Group.Frontcountry,
Expand All @@ -148,6 +158,14 @@ const PARKS: Record<Park, ParkInfo> = {
resourceLocationId: "-2147483600",
equipment: _defaultEquipSpec,
},
[Park.SidneySpit]: {
org: Org.ParksCanada,
group: Group.Frontcountry,
category: Category.Campsite,
mapId: "-2147483476",
resourceLocationId: "-2147483599",
equipment: _defaultEquipSpec,
},
};

/**
Expand Down
18 changes: 18 additions & 0 deletions projects/outdoors/reserve-link.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,24 @@ describe(getReservationUrl.name, () => {
expect(url).toBe(expectedUrl);
});

it("should work for Gulf Islands National Park Reserve", () => {
const url = getReservationUrl({
park: Park.GulfIslandsNPR,
...defaultArgs,
});
const expectedUrl = [
"https://reservation.pc.gc.ca/create-booking/results",
"?searchTabGroupId=0", // frontcountry
"&bookingCategoryId=0", // campsite
"&mapId=-2147483478",
...defaultParams,
"&equipmentId=-32768", // tent or vehicle
"&subEquipmentId=-32768", // small tent
"&filterData=%7B%7D", // no filter
].join("");
expect(url).toBe(expectedUrl);
});

it("should work for SMONEĆTEN", () => {
const url = getReservationUrl({
park: Park.SMONEĆTEN,
Expand Down

0 comments on commit f6af35c

Please sign in to comment.