Skip to content

Instantly share code, notes, and snippets.

View bertt's full-sized avatar

Bert Temme bertt

View GitHub Profile
@bertt
bertt / gist:71aa40afd4c6a74e76808eeb784713dd
Created May 13, 2023 07:40
Gmaps 3D Tiles - root.json
{
"asset":{
"version":"1.0"
},
"geometricError":1e+100,
"root":{
"boundingVolume":{
"box":[
0,
0,
{
"extensions":{
"EXT_structural_metadata":{
"schema":{
"classes":{
"terrain":{
"description":"class description",
"name":"terrain",
"properties":{
"objectid":{
@bertt
bertt / gist:eb27c404149e3a5ecb9fe6499d52f99a
Created August 20, 2022 19:25
ecef2latlon using pyproj
import pyproj
lon = 1231256.4091099831
lat = -4800453.896456448
alt = 4000024.663498499
transformer = pyproj.Transformer.from_crs("EPSG:4978", "EPSG:4326")
print(transformer)
xyz = transformer.transform(lon, lat, alt)
print('Projected XY', xyz)
lonlat = transformer.transform(xyz[0], xyz[1], xyz[2], direction='INVERSE')
{
"buffers":[
{
"byteLength":16
}
],
"bufferViews":[
{
"buffer":0,
"byteOffset":0,
@bertt
bertt / subtree_json_sample_0_0_0
Last active July 5, 2022 18:21
subtree_json_Sample
{
"buffers":[
{
"byteLength":16
}
],
"bufferViews":[
{
"buffer":0,
"byteOffset":0,
@bertt
bertt / gist:f277667644eed70a95c8392a2a22b4c9
Created June 29, 2022 13:46
tileset layerjson sample
{
"tilejson": "2.1.0",
"name": "i09bz13857",
"description": "",
"version": "1.1.0",
"format": "quantized-mesh-1.0",
"attribution": "",
"schema": "tms",
"tiles": [ "{z}/{x}/{y}.terrain?v={version}" ],
"projection": "EPSG:4326",
GDAL 3.5.0, dev-4b77cd8111ce6c6b79cb0c75101394367b9e135e, released 2022/05/03
$ ogrinfo --formats
Supported Formats:
FITS -raster,vector- (rw+): Flexible Image Transport System
PCIDSK -raster,vector- (rw+v): PCIDSK Database File
netCDF -raster,multidimensional raster,vector- (rw+vs): Network Common Data Format
PDS4 -raster,vector- (rw+vs): NASA Planetary Data System 4
VICAR -raster,vector- (rw+v): MIPL VICAR file
JP2OpenJPEG -raster,vector- (rwv): JPEG-2000 driver based on OpenJPEG library
// test
var result = PointRotator.RotatePoint(new Vector2(5.0f, 0), new Vector2(0, 0), Math.PI / 2 );
Assert.IsTrue(Math.Round(result.X, 0) == 0f);
Assert.IsTrue(Math.Round(result.Y,0) == -5);
// RotatePoint method
public static class PointRotator
frame.Camera.EulerAngles.Y * 180 / Math.PI
0 degrees: blue towards device, red to the right, green up
positive [0 - 180] turning to left
negative [0 - -180] turning to right
@bertt
bertt / convert_4326_3857
Last active July 21, 2023 11:10
Convert from Longitude/Latitude (4326) to 3857 (Spherical Mercator)
public static double[] ToSphericalMercatorFromWgs84(double Longitude, double Latitude)
{
var x = Longitude * 20037508.34 / 180;
var y = Math.Log(Math.Tan((90 + Latitude) * Math.PI / 360)) / (Math.PI / 180);
y = y * 20037508.34 / 180;
return new double[] { x, y };
}
public static double[] ToWgs84FromSphericalMercator(double x, double y)
{