//todo: unit test public string GetPortLocode(double?speed, double?lat, double?lon) { if (lat.HasValue && lon.HasValue && speed.HasValue) { if (speed > 0.5) { return(null); } foreach (AreaBboxModel port in _memoryAccess.GetPortAreas()) { MapPointModel point = new MapPointModel() { Lat = double.Parse(lat.ToString()), Lon = double.Parse(lon.ToString()) }; if (VerifyPolygon(point, port)) { return(port.KeyProperty); } } } return(null); }
public string GetGeographicalArea(double?lat, double?lon) { if (lat.HasValue && lon.HasValue) { if (lat.Value == 0 && lon.Value == 0) { return("Unknown"); } foreach (AreaBboxModel sea in _memoryAccess.GetSeaAreas()) { MapPointModel point = new MapPointModel() { Lat = double.Parse(lat.ToString()), Lon = double.Parse(lon.ToString()) }; if (VerifyPolygon(point, sea)) { return(sea.Name); } } } return(null); }
private bool VerifyPolygon(MapPointModel point, AreaBboxModel area) { //+/- 0.05 for port boundaries if (point.Lat > (area.MinLatitude - 0.05) && point.Lat < (area.MaxLatitude + 0.05) && point.Lon > (area.MinLongitude - 0.05) && point.Lon < (area.MaxLongitude + 0.05)) { return(true); } return(false); }
private void GoToAddPoint() { CurrentMapPoint = new MapPointModel(); var masterDetailPage = App.Current.MainPage as MasterDetailPage; if (masterDetailPage != null && !( GetCurrentPage() is AddMapPointView)) { masterDetailPage.Detail.Navigation.PushAsync(new AddMapPointView()); } masterDetailPage.IsPresented = false; }