示例#1
0
        public PlaceInfo(string geoEntry)
        {
            var fields = geoEntry.Split(fieldsDelimiter);

            if (fields.Length != fieldCount)
            {
                throw new ArgumentException("Invalid GeoName Record");
            }

            PlaceInfoId      = int.Parse(fields.GetValue(PlaceInfoFields.PlaceInfoId), CultureInfo.InvariantCulture);
            Name             = fields.GetValue(PlaceInfoFields.Name);
            AsciiName        = fields.GetValue(PlaceInfoFields.AsciiName);
            AlternateNames   = fields.GetValue(PlaceInfoFields.AlternateNames);
            Latitude         = double.Parse(fields.GetValue(PlaceInfoFields.Latitude), CultureInfo.InvariantCulture);
            Longitude        = double.Parse(fields.GetValue(PlaceInfoFields.Longitude), CultureInfo.InvariantCulture);
            FeatureCode      = fields.GetValue(PlaceInfoFields.FeatureCode);
            FeatureClass     = FeatureCode.ToFeatureClass();
            CountryCode      = fields.GetValue(PlaceInfoFields.CountryCode);
            AltCountryCodes  = fields.GetValue(PlaceInfoFields.AltCountryCodes);
            Admin1Code       = fields.GetValue(PlaceInfoFields.Admin1Code);
            Admin2Code       = fields.GetValue(PlaceInfoFields.Admin2Code);
            Admin3Code       = fields.GetValue(PlaceInfoFields.Admin3Code);
            Admin4Code       = fields.GetValue(PlaceInfoFields.Admin4Code);
            Population       = long.Parse(fields.GetValue(PlaceInfoFields.Population), CultureInfo.InvariantCulture);
            Elevation        = fields.GetValue(PlaceInfoFields.Elevation).GetIntOrNull();
            Dem              = int.Parse(fields.GetValue(PlaceInfoFields.Dem), CultureInfo.InvariantCulture);
            TimeZone         = fields.GetValue(PlaceInfoFields.TimeZone);
            ModificationDate = DateTime.ParseExact(fields.GetValue(PlaceInfoFields.ModificationDate), modificationDateFormat, CultureInfo.InvariantCulture);
        }