# latlon Parse geographic coordinates from string. A wide range of commonly used formats is supported. See the unit tests for a complete reference. If a format you need is missing, please submit a merge request (including unit tests). ## Usage ```rust // parse a coord let coord : geo::Point = latlon::parse("N 50°5.30385', E 14°26.94732'").unwrap(); // individual lat/lng parsing let lat : f64 = latlon::parse_lat("N 50°5.30385'").unwrap(); let lng : f64 = latlon::parse_lng("E 14°26.94732'").unwrap(); ``` ## Supported formats Example of supported formats: - `40° 26' 46" N 79° 58' 56" W` - `N 40° 26' 46" W 79° 58' 56"` - `40° 26.767' N 79° 58.933' W` - `40° 26' 46" 79° 58' 56"`, `40° 26' 46", 79° 58' 56"`, ... - `N 40° 26.767' W 79° 58.933'` - `40° 26.767' 79° 58.933'`, `40° 26.767', 79° 58.933'`, ... - `N 40.446° W 79.982°` - `40.446° N 79.982° W` - `40.446° 79.982°`, `40.446,79.982`, etc. ## Parser rules - All formats support negative degrees (preceded by a minus sign). Positive latitude is North, positive longitude is East. - Whitespace is optional and ignored, except for formats that would become unparsable. - Degree, minute and second symbols can be omitted. - Comma (`,`) may be used as an alternate decimal separator. - Unicode quotes (e.g. `’`, `”`) are supported for minutes and seconds. - The two coordinates can be separated by comma (`,`), semicolon (`;`), whitespace, or nothing at all, if not ambiguous.