Places 📍

🖼️ Photos 📽️ Videos
Map: Severence Hill Trail
Map: Kelly Hollow Trail

I am always jealous of all the rednecks … 👩‍🌾

I am often quite jealous of rednecks, because they know so much more about the land, mechanical things, and technology then I will ever know. They seem to make so much out of life and the things they own, and are able to fix and extend broken things that I have little choice to toss or take to someone else to repair. They have such a knowledge of land and natural systems, physical systems, and the way the world works, that I will never have a chance to fully understand.

Rednecks and the Noble Eco Savage 👨🏻‍🌾

I often think of rednecks as noble savages. They work hard, don’t have a lot of money so they repair, reuse and maximize life out of whatever they can get second hand. Junk roofing, parts from old cars and motors, they use to repair what they have rather than throwing away.

The farm animals they raise produce food for their families and others. It is a life based on reality one where the piglet comes onto the farm, fed grain, fertilizes the land, has a 22 bullet put through its brain, scalded, quartered, frozen or cooked. Where food scraps are recycled into pig feed where the manure makes the farm field and garden grow.

The redneck homestead with the trash burning barrel goes to the dump like once a year, because most of their trash goes up into smoke and is disposed on site – if the ash and unburnt debris isn’t buried in the farm trash pit. Valuable recyclables – namely metals – get saved for scrap and are sold for money and actually used as industrial feedstock.

Many more remote, rural redneck homesteads are now off grid in part because the high cost of running electric lines up in the mountains. It turns out that solar technology is pretty damn good at supplementing generator power and that solar panels are fairly cheap especially when somebody does their own wiring and builds their own stands.

It’s a life so much more sustainable then the eco conscious suburbanite living in the city. Grid tied solar and your Prisus might reduce your carbon footprint or cleaning and recycling plastic bottles might keep them out of the landfill but it’s nothing like the homestead that keeps old machinery running rather than discarding, that produces and slaughters meat on site compared to buying on styrofoam.

How to Zoom to a KMZ Layer Using maplibre-gl-kmz-layer

It took me a while to figure out to zoom to a KMZ Layer using maplibre-gl-kmz-layer using MapLibre GL and the Gemini AI wasn’t exactly helpful. It’s quite simple if you use the getData() function your KMZ Layer, then pass the features object along to turf.bbox() to get the bounding box.

map.fitBounds(turf.bbox(kmzLayer.getData().features));

Here is a complete code example, that can be copied and pasted in your browser. You may have to change the KMZ file path, as my server does not allow hot linking, but other then that it will run locally.

<!DOCTYPE html>
<html lang="en">
<head>
	
    <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.css' />
    <script src='https://unpkg.com/maplibre-gl@5.24.0/dist/maplibre-gl.js'></script>
    <script src="https://cdn.jsdelivr.net/gh/northprint/maplibre-gl-kmz-layer@main/dist/maplibre-gl-kmz-layer.js"></script>
    
    <!-- required for finding the bbox of the underlying KMZ layer -->
    <script src="https://cdn.jsdelivr.net/npm/@turf/turf@7/turf.min.js"></script>
    
    <style>
        body { margin: 0; padding: 0; }
        html, body, #map { height: 100%; }
    </style>
</head>
<body>
<div id="map"></div>

<script>
	
// initial map set up with openfreemap
const map = new maplibregl.Map({
    container: 'map',
    zoom: 10,
    center: [ -74.62274, 43.68907],
    pitch: 0,
    bearing: 0,
    maxPitch: 95
});

map.setStyle('https://tiles.openfreemap.org/styles/bright');

// once the map is then fully load the KMZ layer
// so that it appears above all other layers

map.on('load', async () => {	  
	let kmzLayer = new MaplibreGLKMZLayer.KMZLayer({
	  id: 'kmz-layer',
	  url: 'https://andyarthur.org/data/kml_20266.kmz'
	});

  await kmzLayer.addTo(map);

  // to zoom to the KMZ layer, you need to get the underlying feature data
  // use the turf library to get the bounding box (bbox) and pass this along to
  // map.fitBounds

	map.fitBounds(turf.bbox(kmzLayer.getData().features));
});

</script>
</body>
</html>