Example #1
0
        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}");
        }
Example #2
0
        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));
            }
        }
Example #3
0
        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}");
        }