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);
        }
Example #2
0
        /// <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
        }