<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body>
<p>I used the open source project MapLibre to build a vector tile
map server (<a href="https://github.com/maplibre/martin">martin</a>)
of Open Street Maps data for the State of Oregon. Having a vector
tile server allows me the opportunity to create a 3 dimensional
area (with some limitations) and display a model in it and have
the model move about. Everything is nice and crisp and does not
suffer the distortions bit mapped images can cause. I was
experimenting with QGIS and the ThreeJS plugin and decided I had
to have a vector tile server if I was going to be serious about 3D
modeling with maps. I was not inclined to subscribe to a
commercial service nor give up my privacy. So I built my own tile
server. While I'm currently working off of a SQLite database
(~430 MB), the martin server (built in rust) ties in with PostGIS
-- I haven't explored that as yet, it was enough to get the tile
server with a tile set of the State of Oregon working on a TLS
[fna SSL] server. I have some working knowledge of databases
given my previous employment for 24 years at the worlds largest
database company. </p>
<p>I started off with the <a
href="https://github.com/openmaptiles/openmaptiles">Open Map
Tiles </a>project and then modified their broken style sheet
(with the help of the MapLibre <a
href="https://github.com/maplibre/maputnik">Maputnik </a>project
which also had problems I had to overcome) and got a tile server
to work with Apache, I prefer Apache over Node. (I'm a seasoned
Gentoo Linux enthusiast and Node, like PHP, just gives me the
willies.) Then I built the martin server in rust -- that was a
piece of cake, and then the trick was to tie in the martin server
with Apache and overcome CORS and proxy issues -- that took a
tremendous amount of time. A take-away: the paradigm is extremely
fragile/brittle, one setting off and nothing renders.<br>
</p>
<p>I could not have gotten to where I am without the help of ChatGPT
-- it's like having a junior software assistant to figure the
mundane tasks that would take me a lot of time, e.g. creating a
model simulation based on ads-b flight data so that it mimics in
real time the actual flight in a 3D map environment. Example: I
said I had a model in a 3D map environment and wanted to feed it
my captured ads-b data to make it simulate in real time the actual
flight path. Boom: proposed JavaScript to accomplish it. I
wanted a circular data set of artificial ads-b data to do testing
with: centered on my property on Court Street, 1/2 mil radius,
sinusoidal elevation from 100 to 500 and back again in one cycle,
intervals of coordinates every 1 second, or every 50
milliseconds. Boom: a Python script that creates a data set.
Then I thought it might be nice to generate the set on the fly
within JavaScript so a user could create a model on a fly and then
watch the aircraft fly the route. Boom: ChatGPT converted the
Python script to a JavaScript returning to me the array of data.
I got a lot of exercise as I went up the staircase from my
basement office to tell my wife what miracle ChatGPT had performed
in software design. (AI can absolutely fail in historical data by
"hallucinating" ~= lying.) I'm ready to testify that given the
right handling (and understanding of its limitations), AI will
revolutionize software development.<br>
</p>
<blockquote>
<p><a class="moz-txt-link-freetext" href="https://salemdata.net/johnpress/?p=170">https://salemdata.net/johnpress/?p=170</a></p>
</blockquote>
<p>Out of pocket costs: $0 (though I've now decided to obtain a
premium account with ChatGPT for $20/month because I'm convinced
it has saved 10s, if not 100s of hours).<br>
</p>
<p>My time -- only The Lord knows (a couple of months?).<br>
</p>
<p>I know everyone here are acolytes of ESRI, but some of us have to
work on a shoestring on our own and believe in open source
solutions. I felt it appropriate to share this story and possibly
inspire some considering open source alternatives.</p>
<p>Cheers,</p>
<p>John<br>
</p>
<div class="moz-signature">-- <br>
<title>Email Rider</title>
<p><font size="2" face="Verdana">John Laurence Poole<br>
1566 Court ST NE<br>
Salem OR 97301-4241<br>
<br>
</font></p>
</div>
</body>
</html>