Пример #1
0
    public static LegLatLng GetLngLatFromPixelCoords(int levelofDetail, int pixx, int pixy)
    {
        TileSystem.PixelXYToLatLong(pixx, pixy, levelofDetail, out var lat, out var lng);
        var rv = new LegLatLng(lat, lng);

        return(rv);
    }
Пример #2
0
    public void AddRowLngLat(LegLatLng ll, int lod, double pixToMeters, Vector2d org)
    {
        TileSystem.LatLongToPixelXY(ll.lat, ll.lng, lod, out var pixx, out var pixz);
        var x = pixx * pixToMeters - org.x;
        var z = pixz * pixToMeters - org.y;

        mapdata.Add(new LegMapCoordPoint {
            lng = (float)ll.lng, lat = (float)ll.lat, x = (float)x, z = (float)z
        });
    }
Пример #3
0
    public LegLatLngBox(LegLatLng ll1, LegLatLng ll2, string name = "llbox")
    {
        this.name = name;
        latmin    = System.Math.Min(ll1.lat, ll2.lat);
        latmax    = System.Math.Max(ll1.lat, ll2.lat);
        lngmin    = System.Math.Min(ll1.lng, ll2.lng);
        lngmax    = System.Math.Max(ll1.lng, ll2.lng);
        latextent = latmax - latmin;
        lngextent = lngmax - lngmin;
        var lod = 16;// kind of arbirary, but there is single precision to think about
        var p1  = ll1.GetMeterCoords(lod);
        var p2  = ll2.GetMeterCoords(lod);

        diagonalInMeters = Vector2.Distance(p1, p2);
    }
Пример #4
0
    public bool IsSubset(LegLatLngBox box)
    {
        var ll1 = new LegLatLng(box.latmin, box.lngmin);

        if (!IsIn(ll1))
        {
            return(false);
        }
        var ll2 = new LegLatLng(box.latmax, box.lngmax);

        if (!IsIn(ll2))
        {
            return(false);
        }
        return(true);
    }
Пример #5
0
 public bool IsIn(LegLatLng ll)
 {
     if (ll.lat < latmin)
     {
         return(false);
     }
     if (latmax < ll.lat)
     {
         return(false);
     }
     if (ll.lng < lngmin)
     {
         return(false);
     }
     if (lngmax < ll.lng)
     {
         return(false);
     }
     return(true);
 }
Пример #6
0
 public static Vector2Int GetV2iPixelCoordFromLatLng(int levelofDetail, LegLatLng ll)
 {
     return(GetVector2IntPixelCoords(levelofDetail, ll.lat, ll.lng));
 }
Пример #7
0
    public Vector2Int GetPixelBottomRight(int lod)
    {
        var rv = LegLatLng.GetVector2IntPixelCoords(lod, latmin, lngmax);

        return(rv);
    }
Пример #8
0
    public Vector2Int GetPixelUpperLeft(int lod)
    {
        var rv = LegLatLng.GetVector2IntPixelCoords(lod, latmax, lngmin);

        return(rv);
    }
Пример #9
0
    public LegLatLng Interpolate(float lambLat, float lambLng)
    {
        var rv = new LegLatLng((float)((lambLat * latextent) + latmin), (float)((lambLng * lngextent) + lngmin));

        return(rv);
    }