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); }
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 }); }
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); }
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); }
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); }
public static Vector2Int GetV2iPixelCoordFromLatLng(int levelofDetail, LegLatLng ll) { return(GetVector2IntPixelCoords(levelofDetail, ll.lat, ll.lng)); }
public Vector2Int GetPixelBottomRight(int lod) { var rv = LegLatLng.GetVector2IntPixelCoords(lod, latmin, lngmax); return(rv); }
public Vector2Int GetPixelUpperLeft(int lod) { var rv = LegLatLng.GetVector2IntPixelCoords(lod, latmax, lngmin); return(rv); }
public LegLatLng Interpolate(float lambLat, float lambLng) { var rv = new LegLatLng((float)((lambLat * latextent) + latmin), (float)((lambLng * lngextent) + lngmin)); return(rv); }