private float[] EstimateMidpoint(GIS_Feature.Coordinates coordinates1, GIS_Feature.Coordinates coordinates2) { float mpLat, mpLong, mpLatAct, mpLongAct; mpLat = (coordinates2.Latitude + coordinates1.Latitude) / 2; mpLong = (coordinates2.Longitude + coordinates1.Longitude) / 2; mpLatAct = 111139 * (mpLat - geolocation.Latitude); mpLongAct = 111139 * (mpLong - geolocation.Longitude); //TODO reference midpoint (In GPS coordinates format) to User GPS location and convert to Unity units. return(new float[] { mpLatAct, mpLongAct }); }
/// <summary> /// Uses pythagorean theory to determine the angle between two XY GIS_Points in planar space /// </summary> /// <param name="coordinates1"></param> /// <param name="coordinates2"></param> /// <returns></returns> private float EstimateAngle(GIS_Feature.Coordinates coordinates1, GIS_Feature.Coordinates coordinates2) { return(Mathf.Rad2Deg * Mathf.Atan2(coordinates2.Latitude - coordinates1.Latitude, coordinates2.Longitude - coordinates1.Longitude)); }
/// <summary> /// Uses pythagorean theory to determine length between two XY GIS_Points in planar space. /// </summary> /// <param name="coordinates1"></param> /// <param name="coordinates2"></param> /// <returns></returns> private float EstimateLength(GIS_Feature.Coordinates coordinates1, GIS_Feature.Coordinates coordinates2) { return(111139 * Mathf.Sqrt(Mathf.Pow(coordinates2.Latitude - coordinates1.Latitude, 2) + Mathf.Pow(coordinates2.Longitude - coordinates1.Longitude, 2))); }