Example #1
0
 /**
  * Seed the SHP definitions
  */
 private function seedShp()
 {
     $shp_data = array('rivers' => array('file' => 'gis.osm_boundaries_v06', 'collection' => 'dresden', 'name' => 'rivers', 'description' => 'Shape file about rivers in Dresden.', 'columns' => array(array('column_name' => 'osm_id', 'index' => 0, 'column_name_alias' => 'osm_id', 'is_pk' => 0), array('column_name' => 'lastchange', 'index' => 1, 'column_name_alias' => 'lastchange', 'is_pk' => 0), array('column_name' => 'code', 'index' => 2, 'column_name_alias' => 'code', 'is_pk' => 0), array('column_name' => 'fclass', 'index' => 3, 'column_name_alias' => 'fclass', 'is_pk' => 0), array('column_name' => 'deleted', 'index' => 4, 'column_name_alias' => 'deleted', 'is_pk' => 0), array('column_name' => 'parts', 'index' => 5, 'column_name_alias' => 'parts', 'is_pk' => 0)), 'geo' => array(array('path' => 'parts', 'property' => 'polyline'))), 'places' => array('file' => 'places', 'name' => 'places', 'collection' => 'france', 'description' => 'Interesting places from "Ile-de-France".', 'columns' => array(array('column_name' => 'osm_id', 'index' => 0, 'column_name_alias' => 'osm_id', 'is_pk' => 0), array('column_name' => 'name', 'index' => 1, 'column_name_alias' => 'name', 'is_pk' => 0), array('column_name' => 'type', 'index' => 2, 'column_name_alias' => 'type', 'is_pk' => 0), array('column_name' => 'population', 'index' => 3, 'column_name_alias' => 'population', 'is_pk' => 0), array('column_name' => 'deleted', 'index' => 4, 'column_name_alias' => 'deleted', 'is_pk' => 0), array('column_name' => 'x', 'index' => 5, 'column_name_alias' => 'x', 'is_pk' => 0), array('column_name' => 'y', 'index' => 6, 'column_name_alias' => 'y', 'is_pk' => 0)), 'geo' => array(array('path' => 'x', 'property' => 'latitude'), array('path' => 'y', 'property' => 'longitude'))));
     $added = false;
     foreach ($shp_data as $directory => $info) {
         // Don't create doubles
         $definition = Definition::where('collection_uri', '=', $info['collection'])->where('resource_name', '=', $info['name'])->first();
         if (empty($definition)) {
             // Create a new ShpDefinition
             $shp_def = new ShpDefinition();
             $shp_def->uri = app_path() . '/storage/data/shp/' . $directory . '/' . $info['file'] . '.shp';
             $shp_def->description = $info['description'];
             $shp_def->epsg = 4326;
             $shp_def->save();
             // Add the tabular columns
             foreach ($info['columns'] as $column) {
                 $tab_column = new TabularColumns();
                 $tab_column->column_name = $column['column_name'];
                 $tab_column->index = $column['index'];
                 $tab_column->column_name_alias = $column['column_name_alias'];
                 $tab_column->is_pk = $column['is_pk'];
                 $tab_column->tabular_id = $shp_def->id;
                 $tab_column->tabular_type = 'ShpDefinition';
                 $tab_column->save();
             }
             // Add the geo properties
             foreach ($info['geo'] as $geo) {
                 $geo_prop = new GeoProperty();
                 $geo_prop->source_type = 'ShpDefinition';
                 $geo_prop->source_id = $shp_def->id;
                 $geo_prop->property = $geo['property'];
                 $geo_prop->path = $geo['path'];
                 $geo_prop->save();
             }
             // Add the ShpDefinition to the Definition
             $definition = new Definition();
             $definition->collection_uri = $info['collection'];
             $definition->resource_name = $info['name'];
             $definition->source_id = $shp_def->id;
             $definition->source_type = 'ShpDefinition';
             $definition->draft = false;
             $definition->save();
             $this->command->info("Published a SHP file.");
             $added = true;
         }
     }
     if (!$added) {
         $this->command->info("No SHP files have been published, all of the uri's that the SHP seeder wanted to use are already taken.");
     }
 }
Example #2
0
 public function getAllDefinitionInfo($limit, $offset, $keywords = [])
 {
     if (!empty($keywords)) {
         $filtered_definitions = [];
         $count = 0;
         $skipped = 0;
         foreach ($keywords as $keyword) {
             $definitions = \Definition::where('keywords', 'LIKE', '%' . $keyword . '%')->get();
             $definition_count = $definitions->count();
             if ($definition_count >= $offset || $count <= $limit + $offset) {
                 // Use the slice(offset, amount) function on the Collection object
                 if ($count < $offset) {
                     $eligable_definitions = $definitions->slice($offset - $count, $limit - $count);
                     foreach ($eligable_definitions as $eligable_definition) {
                         $filtered_definitions[] = $eligable_definition->toArray();
                     }
                 } elseif ($count < $limit + $offset) {
                     $eligable_definitions = $definitions->slice(0, $limit - $count + 1);
                     foreach ($eligable_definitions as $eligable_definition) {
                         $filtered_definitions[] = $eligable_definition->toArray();
                     }
                 }
             }
             $count += $definition_count;
         }
         $filtered_info = [];
         foreach ($filtered_definitions as $filtered_definition) {
             $identifier = $filtered_definition['collection_uri'] . '/' . $filtered_definition['resource_name'];
             $filtered_info[$identifier] = $this->getDescriptionInfo($identifier);
         }
         return $filtered_info;
     } else {
         $definitions = array();
         foreach ($this->getAll($limit, $offset) as $definition) {
             $identifier = $definition['collection_uri'] . '/' . $definition['resource_name'];
             $definitions[$identifier] = $this->getDescriptionInfo($identifier);
         }
     }
     return $definitions;
 }
Example #3
0
 /**
  * Seed the SHP definitions
  */
 private function seedShp()
 {
     $shp_config = ['collection_uri' => 'dresden', 'resource_name' => 'rivers', 'title' => 'Dresden rivers', 'uri' => app_path() . '/storage/data/shp/rivers/gis.osm_boundaries_v06.shp', 'epsg' => 4326, 'type' => 'shp', 'rights' => 'License Not Specified', 'keywords' => 'dresden, geographical', 'description' => 'Shape file containing the rivers in the city Dresden.', 'columns' => array(array('column_name' => 'osm_id', 'index' => 0, 'column_name_alias' => 'osm_id', 'is_pk' => 0), array('column_name' => 'lastchange', 'index' => 1, 'column_name_alias' => 'lastchange', 'is_pk' => 0), array('column_name' => 'code', 'index' => 2, 'column_name_alias' => 'code', 'is_pk' => 0), array('column_name' => 'fclass', 'index' => 3, 'column_name_alias' => 'fclass', 'is_pk' => 0), array('column_name' => 'deleted', 'index' => 4, 'column_name_alias' => 'deleted', 'is_pk' => 0), array('column_name' => 'parts', 'index' => 5, 'column_name_alias' => 'parts', 'is_pk' => 0)), 'geo' => array(array('path' => 'parts', 'property' => 'polyline'))];
     $definition = Definition::where('collection_uri', '=', 'dresden')->where('resource_name', '=', 'rivers')->first();
     if (empty($definition)) {
         $this->definitions->store($shp_config);
         $this->command->info("Published a SHP dataset.");
     } else {
         $this->command->info("No SHP files have been published, all of the uri's that the SHP seeder wanted to use are already taken.");
     }
 }
Example #4
0
 /**
  * Return the count of all non-draft definitions
  */
 public function countPublished()
 {
     return \Definition::where('draft', '=', 0)->count();
 }
 public function getOldest()
 {
     $definition = \Definition::where('updated_at', '=', \DB::table('definitions')->max('updated_at'))->first();
     if (!empty($definition)) {
         return $definition->toArray();
     }
     return $definition;
 }