Skip to content

Instantly share code, notes, and snippets.

View bertt's full-sized avatar

Bert Temme bertt

View GitHub Profile
@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')
@bertt
bertt / convert_4326_4978.txt
Last active July 21, 2022 21:52
convert latitude/longitude (4326) to cartesian/ecef (4978)
Two methods to get from 4326 (longitude, latitude) to 4978 (cartesian - ecef). TLDR; use DotSpatial.Positioning when possible (because much faster).
1] using DotSpatial.Positioning (fast):
```
private static System.Numerics.Vector3 ToCartesian(double lat, double lon, double alt)
{
var pos3d = new Position3D(new Distance(alt, DistanceUnit.Meters), new Latitude(lat), new Longitude(lon));
var res1 = pos3d.ToCartesianPoint();
@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,
{
"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
// http://leafletjs.com/examples/quick-start-example.html in TypeScript
/// <reference path="leaflet.d.ts" />
var map = new L.Map("map");
map.setView(new L.LatLng(51.505, -0.09), 13);
var layer =new L.TileLayer("http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png", { maxZoom: 18, attribution: "attribution test" })
layer.addTo(map);
// add marker
var marker = new L.Marker(new L.LatLng(51.5, -0.09));
marker.addTo(map).bindPopup("<b>Hello world!</b><br />I am a popup.").openPopup();
@bertt
bertt / appstores_publishing
Last active December 23, 2021 21:39
Recipe to publish app to stores
How to: Creating a new app release in the various store
1] Android App
- Chenge version in project - properties (id, name)
- Project on release
- Archive
// 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
@bertt
bertt / cesium_terrains
Last active May 6, 2021 23:59
Cesium + custom terrains
Cesium.Ion.defaultAccessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI1OGUyODEwNC03YTIzLTRjMmItOTk4Ni1iZWNkNGE1MWZhMTkiLCJpZCI6NTQzLCJpYXQiOjE1MjUyNzM4OTd9.F2r6H2XRAcnkHjkFgXAzDieW6TeIxDhTZ5hdikd-_Q8';
var viewer = new Cesium.Viewer('cesiumContainer', {
terrainExaggeration : 10.0
});
var terrainProvider = new Cesium.CesiumTerrainProvider({
url : '/tilesets/tiles'
});
viewer.scene.terrainProvider = terrainProvider;