private void button4_Click(object sender, EventArgs e) { int lon = Convert.ToInt32(txtX6.Text); int lat = Convert.ToInt32(txtY6.Text); int zoom = Convert.ToInt32(txtZ6.Text); // crap var t = CesiumMerc.TileXYToNativeRectangle(lon, lat, zoom); // listBox1.Items.Add($" CesiumMerc (WS ,EN ({t.West} , {t.South}) - ({t.East} , {t.North})"); // var long1 = MapUtil.tile2long(lon, zoom); // var lat1 = MapUtil.tile2lat(lat, zoom); // listBox1.Items.Add($" Please Lat lon {lat1} , {long1})"); var bb2 = Geographic.TileXYToRectangleLL(lon, lat, zoom); listBox1.Items.Add($"Geographic.TileXYToRectangleLL WS ,EN ({bb2.West} , {bb2.South}) - ({bb2.East} , {bb2.North})"); var bb = MapGeo.TileXYZToRectLL(lon, lat, zoom); listBox1.Items.Add($"MapGeo.TileXYZToRectLL WS ,EN ({bb.West} , {bb.South}) - ({bb.East} , {bb.North})"); listBox1.Items.Add(""); // Now convert to ECEF coords var res2 = Coord.geo_to_ecef(new Vector3(MapUtil.Deg2Rad(bb.West), MapUtil.Deg2Rad(bb.South), 10)); listBox1.Items.Add($"WS to Meters EcEf XYZ:{res2.X} , {res2.Y} , {res2.Z}"); var res3 = Coord.geo_to_ecef(new Vector3(MapUtil.Deg2Rad(bb.East), MapUtil.Deg2Rad(bb.North), 10)); listBox1.Items.Add($"EN to Meters EcEf XYZ:{res3.X} , {res3.Y} , {res3.Z}"); var x = res2.X + FindDifference(res3.X, res2.X) / 2; var y = res2.Y + FindDifference(res3.Y, res2.Y) / 2; listBox1.Items.Add($"Center XY:{x} , {y}"); }
public async override Task <ElevationData> GetDemXYZ(int x, int y, int z) { lock (_object) // thread safe bitmap lookup contention. Todo use thread safe readonly list { y = MapUtil.FlipY(y, z); // Get the lat lon boundary from xyz tile var rect = Geographic.TileXYToRectangleLL(x, y, z); // Make the DEM that will be used to make a quantized mesh return(MakeTileDEM(rect)); } }
private void btnXYZ_Click(object sender, EventArgs e) { int lon = Convert.ToInt32(txtX5.Text); int lat = Convert.ToInt32(txtY5.Text); int zoom = Convert.ToInt32(txtZ5.Text); var bb = Geographic.TileXYToRectangleLL(lon, lat, zoom); ToDisplay(bb.ToDisplay()); var midPt = bb.GetCenter(); ToDisplay($"Mo=idPoint XY ({midPt.Longitude} , {midPt.Latitude})"); var pt = Coord.geo_to_ecef(new Vector3(MapUtil.Deg2Rad(midPt.Longitude), MapUtil.Deg2Rad(midPt.Latitude), 1)); // zero elevation for now //var pt = MapUtil.LatLonToEcef(midPt.Latitude, midPt.Longitude, 0); // zero elevation for now ToDisplay($"CenterXYZ {pt.X}, {pt.Y}, {pt.Z}"); }