Skip to main content

Posts

Showing posts with the label 3D geospatial

Controlling other Geo-Apps with CesiumJS MCP

 Moving the camera to see the sky in CesiumJS maps has always been a little bit difficult for me. So,m when CesiumJS announced their baseline MCP for controlling the camera on CesiumJS maps, I leaped at the chance to try out an MCP and to grab hold of better control of my map camera.  This week, the sujbect of eclipses came up in my Gladych Files research. ( Ferry Barrows Colton , famed National Geographic Science writer of the 1940s was part of the 1947 Brazil eclipse expedtiion, and was also on board the Normandie with Tom Slick in 1937.) That reminded me of the following picture I took of the 2017 eclipse from Wyoming.  I've wanted to identify the stars on that picture for years, so I was curious if CesiumJS had accurate constellation maps for a given date and time. Turns out, they do. But, how to look at the stars? I revived my version of the  MCP camera control server for CesiumJS in a few minutes by starting Codex in the repo directory on my local machine, a...

Things I Learned: Using URLs to Store Web App State in Cesium Sandcastle

 With Cesium Ion Sandcastle users can try out various parts of the Cesium JS library to create maps. Once their code is working, they can also share those maps with the code. I initially wondered about the infrastructure that required to store and then serve every single map examples code. Then, I realized that the code isn't stored in a server, it's in the share URL! I originally started to put this together when I noticed how long a typical Cesium Sandcastle is. They tend to look like this: except longer. The seemingly random characters are a base64 encoded transcript of the JavaScript code along with the html and styling for the Sandcastle project. The fact that everything was encoded in the URL made me wonder what else could be achieved with the URL. A lot, it turns out. NOTE : I discovered it's important to place your additional URL args before the #c anchor that contains the Sandcastle code. Otherwise, your args get interpreted as being part of the JavaScript that...

Things I Learned: The CZML Interval and Map Animation Time Control

 I completed the first prototype of my CZML QSO mapping template for Datasette yesterday. So far, I've implemented animation by using the interval property in CZML. Intervals can be attached to any (?) other tag it seems. I had to intuit what to do on a large degree based on the documentation. { "id" : "myObject" , "someProperty" : [ { "interval" : "2012-04-30T12:00:00Z/13:00:00Z" , "number" : 5 } , { "interval" : "2012-04-30T13:00:00Z/14:00:00Z" , "number" : 6 } , ] } I used CZML polylines to display each QSO. Each polyline has a show property. I attached an interval to each QSO of one minute, like so: . "id":"ea1ec", "name":"ea1ec", "polyline":{ "positions":{ "cartographicDegrees":[-106.55691216...