private ObservableCollection <CityPOI> BuildCollection(JObject items) { ObservableCollection <CityPOI> cityPOIs = new ObservableCollection <CityPOI>(); foreach (var data in items["data"]) { var poiTitle = data["title"].ToString(); var poiTID = data["field_type_poi"].ToString(); string poiDescription = data["field_description_poi"] != null ? data["field_description_poi"].ToString() : ""; string latitude = data["field_latitude"] != null ? data["field_latitude"].ToString() : ""; string longitude = data["field_longitude"] != null ? data["field_longitude"].ToString() : ""; string phone = data["field_phone_poi"] != null ? data["field_phone_poi"].ToString() : ""; string linkText = data["field_linkText"] != null ? data["field_linkText"].ToString() : ""; string linkURL = data["field_linkURL"] != null ? data["field_linkURL"].ToString() : ""; string logo = data["field_logo_poi"] != null ? data["field_logo_poi"].ToString() : ""; string organization = data["field_venue_poi_organization"] != null ? data["field_venue_poi_organization"].ToString() : ""; string addressLineOne = data["field_venue_poi_address_line1"] != null ? data["field_venue_poi_address_line1"].ToString() : ""; string addressLineTwo = data["field_venue_poi_address_line2"] != null ? data["field_venue_poi_address_line2"].ToString() : ""; string city = data["field_venue_poi_locality"] != null ? data["field_venue_poi_locality"].ToString() : ""; string locality = data["field_venue_poi_locality"] != null ? data["field_venue_poi_locality"].ToString() : ""; string administrative_area = data["field_venue_poi_administrative_area"] != null ? data["field_venue_poi_administrative_area"].ToString() : ""; string postal_code = data["field_venue_poi_postal_code"] != null ? data["field_venue_poi_postal_code"].ToString() : ""; string assetList = data["field_assets_poi"] != null ? data["field_assets_poi"].ToString() : ""; string startDateTime = data["field_start_date"] != null ? data["field_start_date"].ToString() : ""; string endDateTime = data["field_end_date"] != null ? data["field_end_date"].ToString() : ""; var newPOI = new CityPOI { Type = poiTID, Title = poiTitle, Description = poiDescription, Image = Constants.ImageBase + logo, Latitidue = Convert.ToDouble(latitude), Longitude = Convert.ToDouble(longitude), AddressLineOne = addressLineOne, AddressLineTwo = addressLineTwo, Locality = locality, Organization = organization, LinkText = linkText, LinkURL = linkURL, Phone = phone, AdministrativeArea = administrative_area, PostalCode = postal_code, NID = data["nid"].ToString(), StartDate = startDateTime, EndDate = endDateTime }; cityPOIs.Add(newPOI); } return(cityPOIs); }
/// <summary> /// generate all the features of all the data sources /// mode = 0, meterology data is found by knn; mode = 1, only find the stations' region /// </summary> public static void GenerateFeature(string roadNetworkFilename, string roadNetworkOutputFilename, string cityPOIFilename, string cityPOIOutputFilename, string roadMapFilename, string speedDirectory, string pickDropPointsDirectory, string mobilityOutputDirectory, string meterologyFilename, string stationLocationFilename, string meterologyFeatureDirectory, string airQualityFilename, string aqiFilename, string airStationFilename, string aqiFeatureDirectory, int mode) { RoadNetwork roadNetwork = IO.ReadRoadNetwork(roadNetworkFilename); CityPOI cityPOI = IO.ReadCityPOI(cityPOIFilename); #region Solution: just use the grid of the road network Grid grid = new Grid(roadNetwork.MinPoint, roadNetwork.MaxPoint, 0.015); #endregion #region roadnetwork feature roadNetwork.RoadFeatures(grid, roadNetworkOutputFilename); #endregion #region cityPOI cityPOI.CityPOIFeature(grid, cityPOIOutputFilename); #endregion #region totalMobility feature DirectoryInfo dirSpeed = new DirectoryInfo(speedDirectory); FileInfo[] files1 = dirSpeed.GetFiles(); DirectoryInfo dirPoints = new DirectoryInfo(pickDropPointsDirectory); FileInfo[] files2 = dirPoints.GetFiles(); int countDay = files1.Count(); for (int i = 0; i < countDay; i++) { Console.WriteLine(i + "day is readed."); using (ToTalMobility totalMobility = IO.ReadMobility(roadNetwork, roadMapFilename, files1[i].FullName, files2[i].FullName, files1[i].Name)) { totalMobility.TotalMobilityFeature(grid, mobilityOutputDirectory); } } #endregion #region meterology feature TotalMeterology totalMeterology = IO.ReadMeterology(meterologyFilename, stationLocationFilename); totalMeterology.TotalMeterologyFeature(grid, meterologyFeatureDirectory, mode);// mode = 0, meterology data is found by knn; mode = 1, only find the stations' region #endregion #region AQI label TotalAirQuality totalAirQuality = IO.ReadAirQuality(airQualityFilename, aqiFilename, airStationFilename); totalAirQuality.TotalAirQualityFeature(grid, aqiFeatureDirectory); #endregion }