GRASS GIS 7 Programmer's Manual
7.9.dev(2021)-e5379bbd7
|
Go to the source code of this file.
Functions | |
struct line_pnts * | Vect_new_line_struct (void) |
Creates and initializes a line_pnts structure. More... | |
int | Vect_append_point (struct line_pnts *, double, double, double) |
Appends one point to the end of a line. More... | |
int | Vect_append_points (struct line_pnts *, const struct line_pnts *, int) |
Appends points to the end of a line. More... | |
int | Vect_line_insert_point (struct line_pnts *, int, double, double, double) |
Insert new point at index position and move all old points at that position and above up. More... | |
int | Vect_line_delete_point (struct line_pnts *, int) |
Delete point at given index and move all points above down. More... | |
int | Vect_line_get_point (const struct line_pnts *, int, double *, double *, double *) |
Get line point of given index. More... | |
int | Vect_get_num_line_points (const struct line_pnts *) |
Get number of line points. More... | |
int | Vect_line_prune (struct line_pnts *) |
Remove duplicate points, i.e. zero length segments. More... | |
int | Vect_line_prune_thresh (struct line_pnts *, double) |
Remove points in threshold. More... | |
void | Vect_line_reverse (struct line_pnts *) |
Reverse the order of vertices. More... | |
int | Vect_copy_xyz_to_pnts (struct line_pnts *, const double *, const double *, const double *, int) |
Copy points from array to line_pnts structure. More... | |
int | Vect_copy_pnts_to_xyz (const struct line_pnts *, double *, double *, double *, int *) |
Copy points from line structure to array. More... | |
void | Vect_reset_line (struct line_pnts *) |
Reset line. More... | |
void | Vect_destroy_line_struct (struct line_pnts *) |
Frees all memory associated with a line_pnts structure, including the structure itself. More... | |
int | Vect_point_on_line (const struct line_pnts *, double, double *, double *, double *, double *, double *) |
Find point on line in the specified distance. More... | |
int | Vect_line_segment (const struct line_pnts *, double, double, struct line_pnts *) |
Create line segment. More... | |
double | Vect_line_length (const struct line_pnts *) |
Calculate line length, 3D-length in case of 3D vector line. More... | |
double | Vect_line_geodesic_length (const struct line_pnts *) |
Calculate line length. More... | |
int | Vect_line_distance (const struct line_pnts *, double, double, double, int, double *, double *, double *, double *, double *, double *) |
Calculate distance of point to line. More... | |
int | Vect_line_geodesic_distance (const struct line_pnts *, double, double, double, int, double *, double *, double *, double *, double *, double *) |
Calculate geodesic distance of point to line in meters. More... | |
void | Vect_line_box (const struct line_pnts *, struct bound_box *) |
Get bounding box of line. More... | |
void | Vect_line_parallel (struct line_pnts *, double, double, int, struct line_pnts *) |
Create parallel line. More... | |
void | Vect_line_parallel2 (struct line_pnts *, double, double, double, int, int, double, struct line_pnts *) |
void | Vect_line_buffer (const struct line_pnts *, double, double, struct line_pnts *) |
Create buffer around the line line. More... | |
void | Vect_line_buffer2 (const struct line_pnts *, double, double, double, int, int, double, struct line_pnts **, struct line_pnts ***, int *) |
Creates buffer around line. More... | |
void | Vect_area_buffer2 (const struct Map_info *, int, double, double, double, int, int, double, struct line_pnts **, struct line_pnts ***, int *) |
Creates buffer around area. More... | |
void | Vect_point_buffer2 (double, double, double, double, double, int, double, struct line_pnts **) |
Creates buffer around the point (px, py). More... | |
struct line_cats * | Vect_new_cats_struct (void) |
Creates and initializes line_cats structure. More... | |
int | Vect_cat_set (struct line_cats *, int, int) |
Add new field/cat to category structure if doesn't exist yet. More... | |
int | Vect_cat_get (const struct line_cats *, int, int *) |
Get first found category of given field. More... | |
int | Vect_cat_del (struct line_cats *, int) |
Delete all categories of given layer. More... | |
int | Vect_field_cat_del (struct line_cats *, int, int) |
Delete field/cat from line_cats structure. More... | |
int | Vect_field_cat_get (const struct line_cats *, int, struct ilist *) |
Get list of categories of given field. More... | |
int | Vect_cat_in_array (int, const int *, int) |
Check if category is in ordered array of integers. More... | |
int | Vect_reset_cats (struct line_cats *) |
Reset category structure to make sure cats structure is clean to be re-used. More... | |
void | Vect_destroy_cats_struct (struct line_cats *) |
Frees all memory associated with line_cats structure, including the struct itself. More... | |
int | Vect_get_area_cats (const struct Map_info *, int, struct line_cats *) |
Get area categories. More... | |
int | Vect_get_area_cat (const struct Map_info *, int, int) |
Find FIRST category of given field and area. More... | |
int | Vect_get_line_cat (const struct Map_info *, int, int) |
Fetches FIRST category number for given vector line and field. More... | |
struct cat_list * | Vect_cats_set_constraint (struct Map_info *, int, char *, char *) |
Set category constraints using 'where' or 'cats' option and layer number. More... | |
int | Vect_cats_in_constraint (struct line_cats *, int, struct cat_list *) |
Check if categories match with category constraints. More... | |
struct cat_list * | Vect_new_cat_list (void) |
Allocate memory for cat_list structure. More... | |
int | Vect_str_to_cat_list (const char *, struct cat_list *) |
Converts string of categories and cat ranges separated by commas to cat_list. More... | |
int | Vect_array_to_cat_list (const int *, int, struct cat_list *) |
Convert ordered array of integers to cat_list structure. More... | |
int | Vect_cat_list_to_array (const struct cat_list *, int **, int *) |
Convert cat_list struct to ordered array of unique integers. More... | |
int | Vect_cat_in_cat_list (int, const struct cat_list *) |
Check if category number is in list. More... | |
void | Vect_destroy_cat_list (struct cat_list *) |
Frees allocated cat_list memory. More... | |
struct varray * | Vect_new_varray (int) |
Create new struct varray and allocate space for given number of items. More... | |
int | Vect_set_varray_from_cat_string (const struct Map_info *, int, const char *, int, int, struct varray *) |
Set values in 'varray' to 'value' from category string. More... | |
int | Vect_set_varray_from_cat_list (const struct Map_info *, int, struct cat_list *, int, int, struct varray *) |
Set values in 'varray' to 'value' from category list. More... | |
int | Vect_set_varray_from_db (const struct Map_info *, int, const char *, int, int, struct varray *) |
Set values in 'varray' to 'value' from DB (where statement) More... | |
struct dblinks * | Vect_new_dblinks_struct (void) |
Create and init new dblinks structure. More... | |
void | Vect_reset_dblinks (struct dblinks *) |
Reset dblinks structure (number of fields) More... | |
int | Vect_add_dblink (struct dblinks *, int, const char *, const char *, const char *, const char *, const char *) |
Add new DB connection to dblinks structure. More... | |
int | Vect_check_dblink (const struct dblinks *, int, const char *) |
Check if DB connection exists in dblinks structure. More... | |
int | Vect_map_add_dblink (struct Map_info *, int, const char *, const char *, const char *, const char *, const char *) |
Add new db connection to Map_info structure. More... | |
int | Vect_map_del_dblink (struct Map_info *, int) |
Delete db connection from Map_info structure. More... | |
void | Vect_copy_map_dblinks (const struct Map_info *, struct Map_info *, int) |
Copy DB links from input vector map to output vector map. More... | |
int | Vect_map_check_dblink (const struct Map_info *, int, const char *) |
Check if DB connection exists in dblinks structure. More... | |
int | Vect_read_dblinks (struct Map_info *) |
Read dblinks to existing structure. More... | |
int | Vect_write_dblinks (struct Map_info *) |
Write dblinks to file. More... | |
struct field_info * | Vect_default_field_info (struct Map_info *, int, const char *, int) |
Get default information about link to database for new dblink. More... | |
struct field_info * | Vect_get_dblink (const struct Map_info *, int) |
Get information about link to database. More... | |
struct field_info * | Vect_get_field (const struct Map_info *, int) |
Get information about link to database (by layer number) More... | |
struct field_info * | Vect_get_field_by_name (const struct Map_info *, const char *) |
Get information about link to database (by layer name) More... | |
struct field_info * | Vect_get_field2 (const struct Map_info *, const char *) |
Get information about link to database (by layer number or layer name) More... | |
int | Vect_get_field_number (const struct Map_info *, const char *) |
Get field number of given field. More... | |
void | Vect_set_db_updated (struct Map_info *) |
Rewrite 'dbln' file. More... | |
const char * | Vect_get_column_names (const struct Map_info *, int) |
Fetches list of DB column names of vector map attribute table. More... | |
const char * | Vect_get_column_types (const struct Map_info *, int) |
Fetches list of DB column types of vector map attribute table. More... | |
const char * | Vect_get_column_names_types (const struct Map_info *, int) |
Fetches list of DB column names and types of vector map attribute table. More... | |
struct ilist * | Vect_new_list (void) |
Creates and initializes a struct ilist. More... | |
int | Vect_list_append (struct ilist *, int) |
Append new item to the end of list if not yet present. More... | |
int | Vect_list_append_list (struct ilist *, const struct ilist *) |
Append new items to the end of list if not yet present. More... | |
int | Vect_list_delete (struct ilist *, int) |
Remove a given value (item) from list. More... | |
int | Vect_list_delete_list (struct ilist *, const struct ilist *) |
Delete list from existing list. More... | |
int | Vect_val_in_list (const struct ilist *, int) |
Find a given item in the list. More... | |
int | Vect_reset_list (struct ilist *) |
Reset ilist structure. More... | |
void | Vect_destroy_list (struct ilist *) |
Frees all memory associated with a struct ilist, including the struct itself. More... | |
struct boxlist * | Vect_new_boxlist (int) |
Creates and initializes a struct boxlist. More... | |
int | Vect_boxlist_append (struct boxlist *, int, const struct bound_box *) |
Append new item to the end of list if not yet present. More... | |
int | Vect_boxlist_append_boxlist (struct boxlist *, const struct boxlist *) |
Append new items to the end of list if not yet present. More... | |
int | Vect_boxlist_delete (struct boxlist *, int) |
Remove a given value (item) from list. More... | |
int | Vect_boxlist_delete_boxlist (struct boxlist *, const struct boxlist *) |
Delete list from existing list. More... | |
int | Vect_val_in_boxlist (const struct boxlist *, int) |
Find a given item in the list. More... | |
int | Vect_reset_boxlist (struct boxlist *) |
Reset boxlist structure. More... | |
void | Vect_destroy_boxlist (struct boxlist *) |
Frees all memory associated with a struct boxlist, including the struct itself. More... | |
int | Vect_point_in_box (double, double, double, const struct bound_box *) |
Tests if point is in 3D box. More... | |
int | Vect_point_in_box_2d (double, double, const struct bound_box *) |
Tests if point is in 2D box. More... | |
int | Vect_box_overlap (const struct bound_box *, const struct bound_box *) |
Tests for overlap of two boxes. More... | |
int | Vect_box_copy (struct bound_box *, const struct bound_box *) |
Copy box B to box A. More... | |
int | Vect_box_extend (struct bound_box *, const struct bound_box *) |
Extend box A by box B. More... | |
int | Vect_box_clip (double *, double *, double *, double *, const struct bound_box *) |
Clip coordinates to box, if necessary, lines extending outside of a box. More... | |
int | Vect_region_box (const struct Cell_head *, struct bound_box *) |
Copy region window to bounding box. More... | |
int | Vect_cidx_get_num_fields (const struct Map_info *) |
Get number of layers in category index. More... | |
int | Vect_cidx_get_field_number (const struct Map_info *, int) |
Get layer number for given index. More... | |
int | Vect_cidx_get_field_index (const struct Map_info *, int) |
Get layer index for given layer number. More... | |
int | Vect_cidx_get_num_unique_cats_by_index (const struct Map_info *, int) |
Get number of unique categories for given layer index. More... | |
int | Vect_cidx_get_num_cats_by_index (const struct Map_info *, int) |
Get number of categories for given layer index. More... | |
int | Vect_cidx_get_num_types_by_index (const struct Map_info *, int) |
Get number of feature types for given layer index. More... | |
int | Vect_cidx_get_type_count_by_index (const struct Map_info *, int, int, int *, int *) |
Get count of feature types for given field and type index. More... | |
int | Vect_cidx_get_type_count (const struct Map_info *, int, int) |
Get count of features of certain type by layer and type. More... | |
int | Vect_cidx_get_cat_by_index (const struct Map_info *, int, int, int *, int *, int *) |
Get category, feature type and id for given layer and category index. More... | |
int | Vect_cidx_get_unique_cats_by_index (struct Map_info *, int, struct ilist *) |
Get list of unique categories for given layer index. More... | |
int | Vect_cidx_find_next (const struct Map_info *, int, int, int, int, int *, int *) |
Find next line/area id for given category, start_index and type_mask. More... | |
void | Vect_cidx_find_all (const struct Map_info *, int, int, int, struct ilist *) |
Find all line/area id's for given category. More... | |
int | Vect_cidx_dump (const struct Map_info *, FILE *) |
Write (dump) category index in text form to file. More... | |
int | Vect_cidx_save (struct Map_info *) |
Save category index to binary file (cidx) More... | |
int | Vect_cidx_open (struct Map_info *, int) |
Read category index from cidx file if exists. More... | |
struct Map_info * | Vect_new_map_struct (void) |
Creates and initializes Map_info structure. More... | |
void | Vect_destroy_map_struct (struct Map_info *) |
Frees all memory associated with a Map_info structure, including the structure itself. More... | |
int | Vect_read_header (struct Map_info *) |
Read vector map header from map head file. More... | |
int | Vect_write_header (const struct Map_info *) |
Write vector map header to map head file. More... | |
const char * | Vect_get_name (const struct Map_info *) |
Get name of vector map. More... | |
const char * | Vect_get_mapset (const struct Map_info *) |
Get name of mapset where vector map lives. More... | |
const char * | Vect_get_full_name (const struct Map_info *) |
Get fully qualified name of vector map. More... | |
const char * | Vect_get_finfo_dsn_name (const struct Map_info *) |
Get datasource name (relevant only for non-native formats) More... | |
char * | Vect_get_finfo_layer_name (const struct Map_info *) |
Get layer name (relevant only for non-native formats) More... | |
const char * | Vect_get_finfo_format_info (const struct Map_info *) |
Get format info as string (relevant only for non-native formats) More... | |
const char * | Vect_get_finfo_geometry_type (const struct Map_info *) |
Get geometry type as string (relevant only for non-native formats) More... | |
const struct Format_info * | Vect_get_finfo (const struct Map_info *) |
Get header info for non-native formats. More... | |
int | Vect_get_finfo_topology_info (const struct Map_info *, char **, char **, int *) |
Get topology type (relevant only for non-native formats) More... | |
int | Vect_is_3d (const struct Map_info *) |
Check if vector map is 3D. More... | |
int | Vect_set_organization (struct Map_info *, const char *) |
Set organization string in map header. More... | |
const char * | Vect_get_organization (const struct Map_info *) |
Get organization string from map header. More... | |
int | Vect_set_date (struct Map_info *, const char *) |
Set date of digitization in map header. More... | |
const char * | Vect_get_date (const struct Map_info *) |
Get date of digitization from map header. More... | |
int | Vect_set_person (struct Map_info *, const char *) |
Set name of user who digitized the map in map header. More... | |
const char * | Vect_get_person (const struct Map_info *) |
Get user name string who digitized the map from map header. More... | |
int | Vect_set_map_name (struct Map_info *, const char *) |
Set map name in map header. More... | |
const char * | Vect_get_map_name (const struct Map_info *) |
Get map name from map header. More... | |
int | Vect_set_map_date (struct Map_info *, const char *) |
Set date when the source map was originally produced in map header. More... | |
const char * | Vect_get_map_date (const struct Map_info *) |
Get date when the source map was originally produced from map header. More... | |
int | Vect_set_comment (struct Map_info *, const char *) |
Set comment or other info string in map header. More... | |
const char * | Vect_get_comment (const struct Map_info *) |
Get comment or other info string from map header. More... | |
int | Vect_set_scale (struct Map_info *, int) |
Set map scale in map header. More... | |
int | Vect_get_scale (const struct Map_info *) |
Get map scale from map header. More... | |
int | Vect_set_zone (struct Map_info *, int) |
Set projection zone in map header. More... | |
int | Vect_get_zone (const struct Map_info *) |
Get projection zone from map header. More... | |
int | Vect_get_proj (const struct Map_info *) |
Get projection from map header. More... | |
int | Vect_set_proj (struct Map_info *, int) |
Set projection in map header. More... | |
const char * | Vect_get_proj_name (const struct Map_info *) |
Query cartographic projection name of pointer to Map_info structure. More... | |
int | Vect_set_thresh (struct Map_info *, double) |
Set threshold used for digitization in map header. More... | |
double | Vect_get_thresh (const struct Map_info *) |
Get threshold used for digitization from map header. More... | |
int | Vect_get_constraint_box (const struct Map_info *, struct bound_box *) |
Get constraint box. More... | |
int | Vect_level (const struct Map_info *) |
Returns level that Map is opened at. More... | |
int | Vect_get_map_box1 (struct Map_info *, struct bound_box *) |
Get bounding box of map on level 1 (all features in the map) More... | |
int | Vect_get_line_type (const struct Map_info *, int) |
Get line type. More... | |
plus_t | Vect_get_num_nodes (const struct Map_info *) |
Get number of nodes in vector map. More... | |
plus_t | Vect_get_num_primitives (const struct Map_info *, int) |
Get number of primitives in vector map. More... | |
plus_t | Vect_get_num_lines (const struct Map_info *) |
Fetch number of features (points, lines, boundaries, centroids) in vector map. More... | |
plus_t | Vect_get_num_areas (const struct Map_info *) |
Get number of areas in vector map. More... | |
plus_t | Vect_get_num_faces (const struct Map_info *) |
Get number of faces in vector map. More... | |
plus_t | Vect_get_num_kernels (const struct Map_info *) |
Fetch number of kernels in vector map. More... | |
plus_t | Vect_get_num_volumes (const struct Map_info *) |
Fetch number of volumes in vector map. More... | |
plus_t | Vect_get_num_islands (const struct Map_info *) |
Get number of islands in vector map. More... | |
plus_t | Vect_get_num_holes (const struct Map_info *) |
Fetch number of holes in vector map. More... | |
int | Vect_get_line_box (const struct Map_info *, int, struct bound_box *) |
Get bounding box of given feature. More... | |
int | Vect_get_area_box (const struct Map_info *, int, struct bound_box *) |
Get bounding box of area. More... | |
int | Vect_get_isle_box (const struct Map_info *, int, struct bound_box *) |
Get bounding box of isle. More... | |
int | Vect_get_map_box (const struct Map_info *, struct bound_box *) |
Get bounding box of map (all features in the map) More... | |
int | V__map_overlap (struct Map_info *, double, double, double, double) |
void | Vect_set_release_support (struct Map_info *) |
Set spatial index to be realease when vector is closed. More... | |
void | Vect_set_category_index_update (struct Map_info *) |
Set category index to be updated when vector is changed. More... | |
int | Vect_check_input_output_name (const char *, const char *, int) |
Check for input and output vector map name. More... | |
int | Vect_legal_filename (const char *) |
Check if output is legal vector name. More... | |
int | Vect_set_open_level (int) |
Predetermine level at which a vector map will be opened for reading. More... | |
int | Vect_open_old (struct Map_info *, const char *, const char *) |
Open existing vector map for reading. More... | |
int | Vect_open_tmp_old (struct Map_info *, const char *, const char *) |
Open existing temporary vector map for reading. More... | |
int | Vect_open_old2 (struct Map_info *, const char *, const char *, const char *) |
Open existing vector map for reading. More... | |
int | Vect_open_old_head (struct Map_info *, const char *, const char *) |
Reads only info about vector map (headers) More... | |
int | Vect_open_old_head2 (struct Map_info *, const char *, const char *, const char *) |
Reads only info about vector map (headers) More... | |
int | Vect_open_new (struct Map_info *, const char *, int) |
Create new vector map for reading/writing. More... | |
int | Vect_open_tmp_new (struct Map_info *, const char *, int) |
Create new temporary vector map. More... | |
int | Vect_open_update (struct Map_info *, const char *, const char *) |
Open existing vector map for reading/writing. More... | |
int | Vect_open_tmp_update (struct Map_info *, const char *, const char *) |
Open existing temporary vector map for reading/writing. More... | |
int | Vect_open_update2 (struct Map_info *, const char *, const char *, const char *) |
Open existing vector map for reading/writing. More... | |
int | Vect_open_update_head (struct Map_info *, const char *, const char *) |
Open header file of existing vector map for updating (mostly for database link updates) More... | |
int | Vect_copy_head_data (const struct Map_info *, struct Map_info *) |
Copy header data from one to another map. More... | |
int | Vect_build (struct Map_info *) |
Build topology for vector map. More... | |
int | Vect_topo_check (struct Map_info *, struct Map_info *) |
Extensive tests for correct topology. More... | |
int | Vect_get_built (const struct Map_info *) |
Return current highest built level (part) More... | |
int | Vect_build_partial (struct Map_info *, int) |
Build partial topology for vector map. More... | |
int | Vect_set_constraint_region (struct Map_info *, double, double, double, double, double, double) |
Set constraint region. More... | |
int | Vect_set_constraint_type (struct Map_info *, int) |
Set constraint type. More... | |
int | Vect_set_constraint_field (struct Map_info *, int) |
Set constraint field. More... | |
void | Vect_remove_constraints (struct Map_info *) |
Remove all constraints. More... | |
int | Vect_rewind (struct Map_info *) |
Rewind vector map to cause reads to start at beginning. More... | |
int | Vect_close (struct Map_info *) |
Close vector map. More... | |
void | Vect_set_error_handler_io (struct Map_info *, struct Map_info *) |
Define standard error handler for input and output vector maps. More... | |
int | Vect_get_next_line_id (const struct Map_info *) |
Get line id for sequential reading. More... | |
int | Vect_read_next_line (const struct Map_info *, struct line_pnts *, struct line_cats *) |
Read next vector feature. More... | |
off_t | Vect_write_line (struct Map_info *, int, const struct line_pnts *, const struct line_cats *) |
Writes a new feature. More... | |
off_t | Vect_rewrite_line (struct Map_info *, off_t, int, const struct line_pnts *, const struct line_cats *) |
Rewrites existing feature (topological level required) More... | |
int | Vect_delete_line (struct Map_info *, off_t) |
Delete existing feature (topological level required) More... | |
int | Vect_restore_line (struct Map_info *, off_t, off_t) |
Restore previously deleted feature (topological level required) More... | |
int | Vect_get_num_dblinks (const struct Map_info *) |
Get number of defined dblinks. More... | |
int | Vect_read_line (const struct Map_info *, struct line_pnts *, struct line_cats *, int) |
Read vector feature (topological level required) More... | |
int | Vect_line_alive (const struct Map_info *, int) |
Check if feature is alive or dead (topological level required) More... | |
int | Vect_node_alive (const struct Map_info *, int) |
Check if node is alive or dead (topological level required) More... | |
int | Vect_area_alive (const struct Map_info *, int) |
Check if area is alive or dead (topological level required) More... | |
int | Vect_isle_alive (const struct Map_info *, int) |
Check if isle is alive or dead (topological level required) More... | |
int | Vect_get_line_nodes (const struct Map_info *, int, int *, int *) |
Get line nodes. More... | |
int | Vect_get_line_areas (const struct Map_info *, int, int *, int *) |
Get area id on the left and right side of the boundary. More... | |
off_t | Vect_get_line_offset (const struct Map_info *, int) |
Get feature offset (topological level required) More... | |
int | Vect_get_node_coor (const struct Map_info *, int, double *, double *, double *) |
Get node coordinates. More... | |
int | Vect_get_node_n_lines (const struct Map_info *, int) |
Get number of lines for node. More... | |
int | Vect_get_node_line (const struct Map_info *, int, int) |
Get line id for node line index. More... | |
float | Vect_get_node_line_angle (const struct Map_info *, int, int) |
Angle of segment of the line connected to the node. More... | |
int | Vect_get_area_points (const struct Map_info *, int, struct line_pnts *) |
Returns polygon array of points (outer ring) of given area. More... | |
int | Vect_get_area_centroid (const struct Map_info *, int) |
Returns centroid id for given area. More... | |
int | Vect_get_area_num_isles (const struct Map_info *, int) |
Returns number of isles for given area. More... | |
int | Vect_get_area_isle (const struct Map_info *, int, int) |
Returns isle id for area. More... | |
double | Vect_get_area_perimeter (const struct Map_info *, int) |
Returns perimeter of area with perimeter of isles. More... | |
double | Vect_get_area_area (const struct Map_info *, int) |
Returns area of area without areas of isles. More... | |
int | Vect_get_area_boundaries (const struct Map_info *, int, struct ilist *) |
Creates list of boundaries for given area. More... | |
int | Vect_get_isle_points (const struct Map_info *, int, struct line_pnts *) |
Returns polygon array of points for given isle. More... | |
int | Vect_get_isle_area (const struct Map_info *, int) |
Returns area id for isle. More... | |
int | Vect_get_isle_boundaries (const struct Map_info *, int, struct ilist *) |
Creates list of boundaries for given isle. More... | |
int | Vect_get_centroid_area (const struct Map_info *, int) |
Get area id the centroid is within. More... | |
int | Vect_get_num_updated_lines (const struct Map_info *) |
Get number of updated features. More... | |
int | Vect_get_updated_line (const struct Map_info *, int) |
Get updated line by index. More... | |
off_t | Vect_get_updated_line_offset (const struct Map_info *, int) |
Get updated line offset by index. More... | |
int | Vect_get_num_updated_nodes (const struct Map_info *) |
Get number of updated nodes. More... | |
int | Vect_get_updated_node (const struct Map_info *, int) |
Get updated (modified) node by index. More... | |
void | Vect_set_updated (struct Map_info *, int) |
Enable/disable maintanance of list of updated lines/nodes. More... | |
void | Vect_reset_updated (struct Map_info *) |
Reset list of updated lines/nodes. More... | |
int | Vect_hist_command (struct Map_info *) |
Write command info to history file. More... | |
int | Vect_hist_write (struct Map_info *, const char *) |
Write string to history file. More... | |
int | Vect_hist_copy (const struct Map_info *, struct Map_info *) |
Copy history from one map to another. More... | |
void | Vect_hist_rewind (struct Map_info *) |
Rewind history file. More... | |
char * | Vect_hist_read (char *, int, const struct Map_info *) |
Reads one line from history file without newline character. More... | |
int | Vect_select_lines_by_box (struct Map_info *, const struct bound_box *, int, struct boxlist *) |
Select lines with bounding boxes by box. More... | |
int | Vect_select_areas_by_box (struct Map_info *, const struct bound_box *, struct boxlist *) |
Select areas with bounding boxes by box. More... | |
int | Vect_select_isles_by_box (struct Map_info *, const struct bound_box *, struct boxlist *) |
Select isles with bounding boxes by box. More... | |
int | Vect_select_nodes_by_box (struct Map_info *, const struct bound_box *, struct ilist *) |
Select nodes by box. More... | |
int | Vect_find_node (struct Map_info *, double, double, double, double, int) |
Find the nearest node. More... | |
int | Vect_find_line (struct Map_info *, double, double, double, int, double, int, int) |
Find the nearest line. More... | |
int | Vect_find_line_list (struct Map_info *, double, double, double, int, double, int, const struct ilist *, struct ilist *) |
Find the nearest line(s). More... | |
int | Vect_find_area (struct Map_info *, double, double) |
Find the nearest area. More... | |
int | Vect_find_island (struct Map_info *, double, double) |
Find the nearest island. More... | |
int | Vect_select_lines_by_polygon (struct Map_info *, struct line_pnts *, int, struct line_pnts **, int, struct ilist *) |
Select lines by Polygon with optional isles. More... | |
int | Vect_select_areas_by_polygon (struct Map_info *, struct line_pnts *, int, struct line_pnts **, struct ilist *) |
Select areas by Polygon with optional isles. More... | |
int | Vect_tin_get_z (struct Map_info *, double, double, double *, double *, double *) |
Calculates z coordinate for point from TIN. More... | |
int | Vect_find_poly_centroid (const struct line_pnts *, double *, double *) |
Get centroid of polygon. More... | |
int | Vect__intersect_line_with_poly (const struct line_pnts *, double, struct line_pnts *) |
int | Vect_get_point_in_area (const struct Map_info *, int, double *, double *) |
Get point inside area and outside all islands. More... | |
int | Vect_get_point_in_poly (const struct line_pnts *, double *, double *) |
Get point inside polygon. More... | |
int | Vect_get_point_in_poly_isl (const struct line_pnts *, const struct line_pnts **, int, double *, double *) |
Get point inside polygon but outside the islands specifiled in IPoints. More... | |
int | Vect_point_in_area (double, double, const struct Map_info *, int, struct bound_box *) |
Check if point is in area. More... | |
int | Vect_point_in_area_outer_ring (double, double, const struct Map_info *, int, struct bound_box *) |
Determines if a point (X,Y) is inside an area outer ring. Islands are not considered. More... | |
int | Vect_point_in_island (double, double, const struct Map_info *, int, struct bound_box *) |
Determines if a point (X,Y) is inside an island. More... | |
int | Vect_point_in_poly (double, double, const struct line_pnts *) |
Determines if a point (X,Y) is inside a polygon. More... | |
void | Vect_break_lines (struct Map_info *, int, struct Map_info *) |
Break lines in vector map at each intersection. More... | |
int | Vect_break_lines_list (struct Map_info *, struct ilist *, struct ilist *, int, struct Map_info *) |
Break selected lines in vector map at each intersection. More... | |
int | Vect_check_line_breaks (struct Map_info *, int, struct Map_info *) |
Check for and count intersecting lines, do not break. More... | |
int | Vect_check_line_breaks_list (struct Map_info *, struct ilist *, struct ilist *, int, struct Map_info *) |
Check for and count intersecting lines, do not break. More... | |
int | Vect_merge_lines (struct Map_info *, int, int *, struct Map_info *) |
Merge lines or boundaries in vector map. More... | |
void | Vect_break_polygons (struct Map_info *, int, struct Map_info *) |
Break polygons in vector map. More... | |
void | Vect_remove_duplicates (struct Map_info *, int, struct Map_info *) |
Remove duplicate features from vector map. More... | |
int | Vect_line_check_duplicate (const struct line_pnts *, const struct line_pnts *, int) |
Check for duplicate lines. More... | |
void | Vect_snap_lines (struct Map_info *, int, double, struct Map_info *) |
Snap lines in vector map to existing vertex in threshold. More... | |
void | Vect_snap_lines_list (struct Map_info *, const struct ilist *, double, struct Map_info *) |
Snap selected lines to existing vertex in threshold. More... | |
int | Vect_snap_line (struct Map_info *, struct ilist *, struct line_pnts *, double, int, int *, int *) |
Snap a line to reference lines in Map with threshold. More... | |
void | Vect_remove_dangles (struct Map_info *, int, double, struct Map_info *) |
Remove dangles from vector map. More... | |
void | Vect_chtype_dangles (struct Map_info *, double, struct Map_info *) |
Change boundary dangles to lines. More... | |
void | Vect_select_dangles (struct Map_info *, int, double, struct ilist *) |
Select dangles from vector map. More... | |
void | Vect_remove_bridges (struct Map_info *, struct Map_info *, int *, int *) |
Remove bridges from vector map. More... | |
void | Vect_chtype_bridges (struct Map_info *, struct Map_info *, int *, int *) |
Change type of bridges in vector map. More... | |
int | Vect_remove_small_areas (struct Map_info *, double, struct Map_info *, double *) |
Remove small areas from the map map. More... | |
int | Vect_clean_small_angles_at_nodes (struct Map_info *, int, struct Map_info *) |
Clean small angles at nodes. More... | |
int | Vect_overlay_str_to_operator (const char *) |
Get operator code from string. More... | |
int | Vect_overlay (struct Map_info *, int, struct ilist *, struct ilist *, struct Map_info *, int, struct ilist *, struct ilist *, int, struct Map_info *) |
Overlay 2 vector maps and create new one. More... | |
int | Vect_overlay_and (struct Map_info *, int, struct ilist *, struct ilist *, struct Map_info *, int, struct ilist *, struct ilist *, struct Map_info *) |
Overlay 2 vector maps with AND. More... | |
void | Vect_graph_init (dglGraph_s *, int) |
Initialize graph structure. More... | |
void | Vect_graph_build (dglGraph_s *) |
Build network graph. More... | |
void | Vect_graph_add_edge (dglGraph_s *, int, int, double, int) |
Add edge to graph. More... | |
void | Vect_graph_set_node_costs (dglGraph_s *, int, double) |
Set node costs. More... | |
int | Vect_graph_shortest_path (dglGraph_s *, int, int, struct ilist *, double *) |
Find shortest path. More... | |
int | Vect_net_build_graph (struct Map_info *, int, int, int, const char *, const char *, const char *, int, int) |
Build network graph. More... | |
int | Vect_net_ttb_build_graph (struct Map_info *, int, int, int, int, int, const char *, const char *, const char *, int, int) |
Build network graph with turntable. More... | |
int | Vect_net_shortest_path (struct Map_info *, int, int, struct ilist *, double *) |
Find shortest path. More... | |
int | Vect_net_ttb_shortest_path (struct Map_info *, int, int, int, int, int, struct ilist *, double *) |
Find shortest path on network. More... | |
dglGraph_s * | Vect_net_get_graph (struct Map_info *) |
Get graph structure. More... | |
int | Vect_net_get_line_cost (const struct Map_info *, int, int, double *) |
Returns in cost for given direction in *cost. More... | |
int | Vect_net_get_node_cost (const struct Map_info *, int, double *) |
Get cost of node. More... | |
int | Vect_net_nearest_nodes (struct Map_info *, double, double, double, int, double, int *, int *, int *, double *, double *, struct line_pnts *, struct line_pnts *, double *) |
Find nearest node(s) on network. More... | |
int | Vect_net_shortest_path_coor (struct Map_info *, double, double, double, double, double, double, double, double, double *, struct line_pnts *, struct ilist *, struct ilist *, struct line_pnts *, struct line_pnts *, double *, double *) |
Find shortest path on network between 2 points given by coordinates. More... | |
int | Vect_net_ttb_shortest_path_coor (struct Map_info *, double, double, double, double, double, double, double, double, int, double *, struct line_pnts *, struct ilist *, struct ilist *, struct line_pnts *, struct line_pnts *, double *, double *) |
Find shortest path on network with turntable between 2 points given by coordinates. More... | |
int | Vect_topo_dump (const struct Map_info *, FILE *) |
Dump topology to file. More... | |
double | Vect_points_distance (double, double, double, double, double, double, int) |
Calculate distance of 2 points. More... | |
int | Vect_option_to_types (const struct Option *) |
Get types from options. More... | |
int | Vect_copy_map_lines (struct Map_info *, struct Map_info *) |
Copy all alive vector features from input vector map to output vector map. More... | |
int | Vect_copy_map_lines_field (struct Map_info *, int, struct Map_info *) |
Copy all alive vector features from given layer from input vector map to output vector map. More... | |
int | Vect_copy (const char *, const char *, const char *) |
Copy vector map including attribute tables. More... | |
int | Vect_rename (const char *, const char *) |
Rename existing vector map (in the current mapset). More... | |
int | Vect_copy_table (const struct Map_info *, struct Map_info *, int, int, const char *, int) |
Copy attribute table linked to vector map based on type. More... | |
int | Vect_copy_table_by_cat_list (const struct Map_info *, struct Map_info *, int, int, const char *, int, const struct cat_list *) |
Copy attribute table linked to vector map based on category list. More... | |
int | Vect_copy_table_by_cats (const struct Map_info *, struct Map_info *, int, int, const char *, int, int *, int) |
Copy attribute table linked to vector map based on category numbers. More... | |
int | Vect_copy_tables (const struct Map_info *, struct Map_info *, int) |
Copy attribute tables linked to vector map. More... | |
int | Vect_delete (const char *) |
Delete vector map including attribute tables. More... | |
int | Vect_segment_intersection (double, double, double, double, double, double, double, double, double, double, double, double, double *, double *, double *, double *, double *, double *, int) |
Check for intersect of 2 line segments. More... | |
int | Vect_line_intersection (struct line_pnts *, struct line_pnts *, struct bound_box *, struct bound_box *, struct line_pnts ***, struct line_pnts ***, int *, int *, int) |
Intersect 2 lines. More... | |
int | Vect_line_intersection2 (struct line_pnts *, struct line_pnts *, struct bound_box *, struct bound_box *, struct line_pnts ***, struct line_pnts ***, int *, int *, int) |
Intersect 2 lines. More... | |
int | Vect_line_check_intersection (struct line_pnts *, struct line_pnts *, int) |
Check if 2 lines intersect. More... | |
int | Vect_line_check_intersection2 (struct line_pnts *, struct line_pnts *, int) |
Check if 2 lines intersect. More... | |
int | Vect_line_get_intersections (struct line_pnts *, struct line_pnts *, struct line_pnts *, int) |
Get 2 lines intersection points. More... | |
int | Vect_line_get_intersections2 (struct line_pnts *, struct line_pnts *, struct line_pnts *, int) |
Get 2 lines intersection points. More... | |
char * | Vect_subst_var (const char *, const struct Map_info *) |
Substitute variable in string. More... | |
void | Vect_spatial_index_init (struct spatial_index *, int) |
Initialize spatial index structure. More... | |
void | Vect_spatial_index_destroy (struct spatial_index *) |
Destroy existing spatial index. More... | |
void | Vect_spatial_index_add_item (struct spatial_index *, int, const struct bound_box *) |
Add a new item to spatial index structure. More... | |
void | Vect_spatial_index_del_item (struct spatial_index *, int, const struct bound_box *) |
Delete item from spatial index structure. More... | |
int | Vect_spatial_index_select (const struct spatial_index *, const struct bound_box *, struct ilist *) |
Select items by bounding box to list. More... | |
int | Vect_read_ascii (FILE *, struct Map_info *) |
Read data in GRASS ASCII vector format. More... | |
int | Vect_read_ascii_head (FILE *, struct Map_info *) |
Read header of GRASS ASCII vector format. More... | |
int | Vect_write_ascii (FILE *, FILE *, struct Map_info *, int, int, int, char *, int, int, int, const struct cat_list *, const char *, const char **, int) |
Write data to GRASS ASCII vector format. More... | |
void | Vect_write_ascii_head (FILE *, struct Map_info *) |
Write data to GRASS ASCII vector format. More... | |
SF_FeatureType | Vect_sfa_get_line_type (const struct line_pnts *, int, int) |
Get SF type of given vector feature. More... | |
int | Vect_sfa_get_type (SF_FeatureType) |
Get relevant GV type. More... | |
int | Vect_sfa_check_line_type (const struct line_pnts *, int, SF_FeatureType, int) |
Check SF type. More... | |
int | Vect_sfa_line_dimension (int) |
Get geometry dimension. More... | |
char * | Vect_sfa_line_geometry_type (const struct line_pnts *, int) |
Get geometry type (string) More... | |
int | Vect_sfa_line_astext (const struct line_pnts *, int, int, int, FILE *) |
Export geometry to Well-Known Text. More... | |
int | Vect_sfa_is_line_simple (const struct line_pnts *, int, int) |
Check if feature is simple. More... | |
int | Vect_sfa_is_line_closed (const struct line_pnts *, int, int) |
Check if feature is closed. More... | |
int | Vect_sfa_get_num_features (const struct Map_info *) |
Get number of simple features. More... | |
int | Vect_print_header (const struct Map_info *) |
Print vector map header to stdout. More... | |
void | Vect__init_head (struct Map_info *) |
Initialize Map_info head structure (dig_head) More... | |
int | Vect_coor_info (const struct Map_info *, struct Coor_info *) |
Update Coor_info structure. More... | |
const char * | Vect_maptype_info (const struct Map_info *) |
Gets vector map format (as string) More... | |
int | Vect_maptype (const struct Map_info *) |
Gets vector map format. More... | |
int | Vect_open_topo (struct Map_info *, int) |
Open topology file ('topo') More... | |
int | Vect_save_topo (struct Map_info *) |
Save topology file for vector map. More... | |
int | Vect_open_sidx (struct Map_info *, int) |
Open spatial index file ('sidx') More... | |
int | Vect_save_sidx (struct Map_info *) |
Save spatial index file for vector map. More... | |
int | Vect_sidx_dump (const struct Map_info *, FILE *) |
Dump spatial index to file. More... | |
int | Vect_build_sidx_from_topo (const struct Map_info *) |
Create spatial index from topology if necessary (not longer supported) More... | |
int | Vect_build_sidx (struct Map_info *) |
Create spatial index if necessary. More... | |
int | Vect_open_fidx (struct Map_info *, struct Format_info_offset *) |
Open feature index file. More... | |
int | Vect_save_fidx (struct Map_info *, struct Format_info_offset *) |
Save feature index file for vector map. More... | |
int | Vect_fidx_dump (const struct Map_info *, FILE *) |
Dump feature index to file. More... | |
int | Vect_save_frmt (struct Map_info *) |
Save format definition file for vector map. More... | |
int | Vect__write_head (const struct Map_info *) |
Writes head information to text file (GV_HEAD_ELEMENT) More... | |
int | Vect__read_head (struct Map_info *) |
Reads head information from text file (GV_HEAD_ELEMENT) - for internal use only. More... | |
int | V1_open_old_nat (struct Map_info *, int) |
Open existing vector map (level 1) More... | |
int | V1_open_old_ogr (struct Map_info *, int) |
Open existing OGR layer on non-topological level. More... | |
int | V1_open_old_pg (struct Map_info *, int) |
Open vector map - PostGIS feature table on non-topological level. More... | |
int | V2_open_old_ogr (struct Map_info *) |
Open existing OGR layer on topological level. More... | |
int | V2_open_old_pg (struct Map_info *) |
Open vector map - PostGIS feature table on topological level. More... | |
int | V1_open_new_nat (struct Map_info *, const char *, int) |
Create new vector map (level 1) More... | |
int | V1_open_new_ogr (struct Map_info *, const char *, int) |
Prepare OGR datasource for creating new OGR layer (level 1) More... | |
int | V1_open_new_pg (struct Map_info *, const char *, int) |
Prepare PostGIS database for creating new feature table (level 1) More... | |
int | V1_rewind_nat (struct Map_info *) |
Rewind vector map to cause reads to start at beginning on non-topological level (level 1) - native format - internal use only. More... | |
int | V1_rewind_ogr (struct Map_info *) |
Rewind vector map (OGR layer) to cause reads to start at beginning (level 1) More... | |
int | V1_rewind_pg (struct Map_info *) |
Rewind vector map (PostGIS layer) to cause reads to start at beginning (level 1) More... | |
int | V2_rewind_nat (struct Map_info *) |
Rewind vector map to cause reads to start at beginning on topological level (level 2) - native format - internal use only. More... | |
int | V2_rewind_ogr (struct Map_info *) |
Rewind vector map (OGR layer) to cause reads to start at beginning on topological level (level 2) More... | |
int | V2_rewind_pg (struct Map_info *) |
Rewind vector map (PostGIS layer) to cause reads to start at beginning on topological level (level 2) More... | |
int | V1_close_nat (struct Map_info *) |
Close vector map. More... | |
int | V1_close_ogr (struct Map_info *) |
Close vector map (OGR dsn & layer) on level 1. More... | |
int | V1_close_pg (struct Map_info *) |
Close vector map (PostGIS layer) on level 1. More... | |
int | V2_close_ogr (struct Map_info *) |
Close vector map on topological level (write out fidx file) More... | |
int | V2_close_pg (struct Map_info *) |
Close vector map (PostGIS layer) on topological level (write out fidx file) More... | |
int | V1_read_line_nat (struct Map_info *, struct line_pnts *, struct line_cats *, off_t) |
Read vector feature on non-topological level (level 1) - native format - internal use only. More... | |
int | V1_read_line_ogr (struct Map_info *, struct line_pnts *, struct line_cats *, off_t) |
Read feature from OGR layer at given offset (level 1 without topology) More... | |
int | V1_read_line_pg (struct Map_info *, struct line_pnts *, struct line_cats *, off_t) |
Read feature from PostGIS layer at given offset (level 1 without topology) More... | |
int | V2_read_line_nat (struct Map_info *, struct line_pnts *, struct line_cats *, int) |
Read vector feature on topological level (level 2) - native format - internal use only. More... | |
int | V2_read_line_sfa (struct Map_info *, struct line_pnts *, struct line_cats *, int) |
Reads feature from OGR/PostGIS layer on topological level. More... | |
int | V2_read_line_pg (struct Map_info *, struct line_pnts *, struct line_cats *, int) |
Read feature from PostGIS layer on topological level. More... | |
int | V1_read_next_line_nat (struct Map_info *, struct line_pnts *, struct line_cats *) |
Read next vector feature on non-topological level (level 1) - native format - internal use only. More... | |
int | V1_read_next_line_ogr (struct Map_info *, struct line_pnts *, struct line_cats *) |
Read next feature from OGR layer. Skip empty features (level 1 without topology). More... | |
int | V1_read_next_line_pg (struct Map_info *, struct line_pnts *, struct line_cats *) |
Read next feature from PostGIS layer. Skip empty features (level 1 without topology). t This function implements sequential access. More... | |
int | V2_read_next_line_nat (struct Map_info *, struct line_pnts *, struct line_cats *) |
Read next vector feature on topological level (level 2) - native format - internal use only. More... | |
int | V2_read_next_line_ogr (struct Map_info *, struct line_pnts *, struct line_cats *) |
Read next feature from OGR layer on topological level. More... | |
int | V2_read_next_line_pg (struct Map_info *, struct line_pnts *, struct line_cats *) |
Read next feature from PostGIS layer on topological level (simple feature access). More... | |
int | V1_delete_line_nat (struct Map_info *, off_t) |
Deletes feature at level 1 (internal use only) More... | |
int | V1_delete_line_ogr (struct Map_info *, off_t) |
Deletes feature at the given offset on level 1 (OGR interface) More... | |
int | V1_delete_line_pg (struct Map_info *, off_t) |
Deletes feature at the given offset (level 1) More... | |
int | V2_delete_line_nat (struct Map_info *, off_t) |
Deletes feature at topological level (internal use only) More... | |
int | V2_delete_line_sfa (struct Map_info *, off_t) |
Deletes feature on level 2 (OGR/PostGIS interface) More... | |
int | V2_delete_line_pg (struct Map_info *, off_t) |
Deletes feature on topological level (PostGIS interface) More... | |
int | V1_restore_line_nat (struct Map_info *, off_t, off_t) |
Restores feature at level 1 (internal use only) More... | |
int | V2_restore_line_nat (struct Map_info *, off_t, off_t) |
Restores feature at topological level (internal use only) More... | |
off_t | V1_write_line_nat (struct Map_info *, int, const struct line_pnts *, const struct line_cats *) |
Writes feature to 'coor' file at level 1 (internal use only) More... | |
off_t | V1_write_line_ogr (struct Map_info *, int, const struct line_pnts *, const struct line_cats *) |
Writes feature on level 1 (OGR interface) More... | |
off_t | V1_write_line_pg (struct Map_info *, int, const struct line_pnts *, const struct line_cats *) |
Writes feature on level 1 (PostGIS interface) More... | |
off_t | V2_write_line_nat (struct Map_info *, int, const struct line_pnts *, const struct line_cats *) |
Writes feature to 'coor' file at topological level (internal use only) More... | |
off_t | V2_write_line_sfa (struct Map_info *, int, const struct line_pnts *, const struct line_cats *) |
Writes feature on level 2 (OGR/PostGIS interface, pseudo-topological level) More... | |
off_t | V2_write_line_pg (struct Map_info *, int, const struct line_pnts *, const struct line_cats *) |
Writes feature on topological level (PostGIS interface) More... | |
off_t | V1_rewrite_line_nat (struct Map_info *, off_t, int, const struct line_pnts *, const struct line_cats *) |
Rewrites feature to 'coor' file at level 1 (internal use only) More... | |
off_t | V1_rewrite_line_ogr (struct Map_info *, off_t, int, const struct line_pnts *, const struct line_cats *) |
Rewrites feature at the given offset on level 1 (OGR interface) More... | |
off_t | V1_rewrite_line_pg (struct Map_info *, off_t, int, const struct line_pnts *, const struct line_cats *) |
Rewrites feature at the given offset (level 1) (PostGIS interface, internal use only) More... | |
off_t | V2_rewrite_line_nat (struct Map_info *, off_t, int, const struct line_pnts *, const struct line_cats *) |
Rewrites feature to 'coor' file at topological level (internal use only) More... | |
off_t | V2_rewrite_line_sfa (struct Map_info *, off_t, int, const struct line_pnts *, const struct line_cats *) |
Rewrites feature at the given offset on level 2 (OGR/PostGIS interface, pseudo-topological level) More... | |
off_t | V2_rewrite_line_pg (struct Map_info *, off_t, int, const struct line_pnts *, const struct line_cats *) |
Rewrites feature at topological level (PostGIS interface, internal use only) More... | |
int | Vect_build_nat (struct Map_info *, int) |
Build topology. More... | |
void | Vect__build_downgrade (struct Map_info *, int) |
Downgrade build level (for internal use only) More... | |
int | Vect__build_sfa (struct Map_info *, int) |
Build pseudo-topology (for simple features) - internal use only. More... | |
int | Vect_build_ogr (struct Map_info *, int) |
Build pseudo-topology (simple features) for OGR layer. More... | |
int | Vect_build_pg (struct Map_info *, int) |
Build topology for PostGIS layer. More... | |
int | Vect_build_line_area (struct Map_info *, int, int) |
Build area on given side of line (GV_LEFT or GV_RIGHT) More... | |
int | Vect_isle_find_area (struct Map_info *, int, const struct bound_box *) |
Find area outside island. More... | |
int | Vect_attach_isle (struct Map_info *, int, const struct bound_box *) |
(Re)Attach isle to area More... | |
int | Vect_attach_isles (struct Map_info *, const struct bound_box *) |
(Re)Attach isles in given bounding box to areas More... | |
int | Vect_attach_centroids (struct Map_info *, const struct bound_box *) |
(Re)Attach centroids in given bounding box to areas More... | |
GEOSGeometry * | Vect_read_line_geos (struct Map_info *, int, int *) |
Read vector feature and stores it as GEOSGeometry instance. More... | |
GEOSGeometry * | Vect_line_to_geos (const struct line_pnts *, int, int) |
Create GEOSGeometry of given type from feature points. More... | |
GEOSGeometry * | Vect_read_area_geos (struct Map_info *, int) |
Read vector area and stores it as GEOSGeometry instance (polygon) More... | |
GEOSCoordSequence * | Vect_get_area_points_geos (struct Map_info *, int) |
Returns the polygon array of points, i.e. outer ring (shell) More... | |
GEOSCoordSequence * | Vect_get_isle_points_geos (struct Map_info *, int) |
Returns the polygon (isle) array of points (inner ring) More... | |
char * | Vect_line_to_wkt (const struct line_pnts *, int, int) |
Create a Well Known Text (WKT) representation of given feature type from points. More... | |
unsigned char * | Vect_line_to_wkb (const struct line_pnts *, int, int, size_t *) |
Create a Well Known Binary (WKB) representation of given feature type from points. More... | |
char * | Vect_read_area_to_wkt (struct Map_info *, int) |
Read vector area and return it as Well Known Text (WKT) unsigned char array. More... | |
unsigned char * | Vect_read_area_to_wkb (struct Map_info *, int, size_t *) |
Read vector area and return it as Well Known Binary (WKB) unsigned char array. More... | |
unsigned char * | Vect_read_line_to_wkb (const struct Map_info *, struct line_pnts *, struct line_cats *, int, size_t *, int *) |
Read a Well Known Binary (WKB) representation of a given feature id. More... | |
int | Vect_read_colors (const char *, const char *, struct Colors *) |
Read color table of vector map. More... | |
int | Vect_remove_colors (const char *, const char *) |
Remove color table of raster map. More... | |
void | Vect_write_colors (const char *, const char *, struct Colors *) |
Write color table for vector map. More... | |
int | RTreeSearch2 (struct RTree *, struct RTree_Rect *, struct ilist *) |
int RTreeSearch2 | ( | struct RTree * | t, |
struct RTree_Rect * | r, | ||
struct ilist * | list | ||
) |
Search in an index tree for all data retangles that overlap the argument rectangle.
t | The RTree |
r | The argument rectangle |
list | The list to store the ids of overlapping rectangles |
Definition at line 38 of file rtree_search.c.
References assert, G_init_ilist(), and RTree::search_rect.
int V1_close_nat | ( | struct Map_info * | Map | ) |
Close vector map.
Map | vector map to be closed |
Definition at line 34 of file close_nat.c.
References _, dig__write_head(), dig_file_free(), Map_info::dig_fp, gvfile::file, G_debug(), G_fatal_error(), G_file_name(), G_mkdir(), G_recursive_copy(), G_strcasecmp(), getenv(), GPATH_MAX, GV_DIRECTORY, GV_MODE_RW, GV_MODE_WRITE, Map_info::head, Map_info::mapset, Map_info::mode, Map_info::name, NULL, dig_head::size, Coor_info::size, Map_info::temporary, TRUE, Vect__get_element_path(), Vect__write_head(), Vect_coor_info(), VECT_OPEN, and Vect_write_dblinks().
int V1_close_ogr | ( | struct Map_info * | Map | ) |
Close vector map (OGR dsn & layer) on level 1.
Map | pointer to Map_info structure |
Definition at line 35 of file close_ogr.c.
References _, Format_info_ogr::cache, db_close_database_shutdown_driver(), Format_info_ogr::dbdriver, Format_info_ogr::driver_name, Format_info_ogr::ds, Format_info_ogr::dsn, Format_info_ogr::feature_cache, Map_info::fInfo, Map_info::format, G_debug(), G_fatal_error(), G_find_file2(), G_free(), G_free_tokens(), G_mapset(), GV_FORMAT_OGR_DIRECT, GV_MODE_RW, GV_MODE_WRITE, Format_info_ogr::layer_name, Format_info_ogr::layer_options, Map_info::mapset, Map_info::mode, Map_info::name, Format_info::ogr, Vect__free_cache(), Vect__write_head(), VECT_OPEN, and Vect_save_frmt().
int V1_close_pg | ( | struct Map_info * | Map | ) |
Close vector map (PostGIS layer) on level 1.
Map | pointer to Map_info structure |
Definition at line 36 of file close_pg.c.
References _, Format_info_pg::cache, Format_info_pg::conn, Format_info_pg::cursor_name, db_close_database_shutdown_driver(), Format_info_pg::db_name, DB_SQL_MAX, Format_info_pg::dbdriver, Format_info_pg::fi, Format_info_pg::fid_column, Map_info::fInfo, G_debug(), G_fatal_error(), G_free(), G_warning(), Format_info_pg::geom_column, GV_MODE_RW, GV_MODE_WRITE, Map_info::mapset, Map_info::mode, Map_info::name, NULL, Format_info::pg, Format_info_pg::res, Format_info_pg::schema_name, Format_info_pg::topogeom_column, Format_info_pg::toposchema_name, Vect__execute_pg(), Vect__free_cache(), Vect__write_head(), VECT_OPEN, and Vect_save_frmt().
int V1_delete_line_nat | ( | struct Map_info * | Map, |
off_t | offset | ||
) |
Deletes feature at level 1 (internal use only)
Map | pointer Map_info structure |
offset | feature offset |
Definition at line 239 of file write_nat.c.
References dig__fread_port_C(), dig__fwrite_port_C(), dig_fflush(), Map_info::dig_fp, dig_fseek(), dig_set_cur_port(), G_debug(), Map_info::head, dig_head::port, and PRI_OFF_T.
int V1_delete_line_ogr | ( | struct Map_info * | Map, |
off_t | offset | ||
) |
Deletes feature at the given offset on level 1 (OGR interface)
Map | pointer Map_info structure |
offset | offset of feature to be deleted |
Definition at line 119 of file write_ogr.c.
References _, Format_info_offset::array, Format_info_offset::array_num, Map_info::fInfo, G_debug(), G_fatal_error(), G_warning(), Format_info_ogr::layer, Format_info_ogr::offset, Format_info::ogr, and PRI_OFF_T.
int V1_delete_line_pg | ( | struct Map_info * | Map, |
off_t | offset | ||
) |
Deletes feature at the given offset (level 1)
Only for simple feature access. PostGIS Topology requires level 2.
Map | pointer Map_info structure |
offset | feature offset |
Definition at line 311 of file write_pg.c.
References _, Format_info_offset::array, Format_info_offset::array_num, Format_info_pg::conn, DB_SQL_MAX, Format_info_pg::fid_column, Map_info::fInfo, G_debug(), G_fatal_error(), G_warning(), Format_info_pg::inTransaction, Format_info_pg::offset, Format_info::pg, PRI_OFF_T, Format_info_pg::table_name, TRUE, and Vect__execute_pg().
int V1_open_new_nat | ( | struct Map_info * | Map, |
const char * | name, | ||
int | with_z | ||
) |
Create new vector map (level 1)
[out] | Map | pointer to Map_info structure |
name | vector map name to be created | |
with_z | 2D or 3D (unused?) |
Definition at line 95 of file open_nat.c.
References Version_info::back_major, Version_info::back_minor, dig_head::coor_version, dig__byte_order_out(), dig__write_head(), dig_file_init(), Map_info::dig_fp, dig_init_portable(), gvfile::file, G_debug(), G_fopen_modify(), G_fopen_new(), GPATH_MAX, GV_COOR_EARLIEST_MAJOR, GV_COOR_EARLIEST_MINOR, GV_COOR_ELEMENT, GV_COOR_VER_MAJOR, GV_COOR_VER_MINOR, GV_TOPO_ELEMENT, Map_info::head, Version_info::major, Version_info::minor, NULL, dig_head::port, Map_info::temporary, Vect__get_element_path(), and Vect__get_path().
int V1_open_new_ogr | ( | struct Map_info * | Map, |
const char * | name, | ||
int | with_z | ||
) |
Prepare OGR datasource for creating new OGR layer (level 1)
New OGR layer is created when writing features by Vect_wrile_line().
[out] | Map | pointer to Map_info structure |
name | name of OGR layer to create | |
with_z | WITH_Z for 3D vector data otherwise WITHOUT_Z |
Definition at line 177 of file open_ogr.c.
References _, Format_info_ogr::driver, Format_info_ogr::driver_name, Format_info_ogr::ds, Format_info_ogr::dsn, Map_info::fInfo, G_debug(), G_fatal_error(), G_get_overwrite(), G_warning(), Format_info_ogr::layer, Format_info_ogr::layer_name, NULL, and Format_info::ogr.
int V1_open_new_pg | ( | struct Map_info * | Map, |
const char * | name, | ||
int | with_z | ||
) |
Prepare PostGIS database for creating new feature table (level 1)
New PostGIS table is created when writing features by Vect_wrile_line().
[out] | Map | pointer to Map_info structure |
name | name of PostGIS feature table to create | |
with_z | WITH_Z for 3D vector data otherwise WITHOUT_Z |
Definition at line 219 of file open_pg.c.
References _, Format_info_pg::conninfo, DB_SQL_MAX, Map_info::fInfo, G_debug(), G_warning(), Format_info::pg, Format_info_pg::res, and Format_info_pg::table_name.
int V1_open_old_nat | ( | struct Map_info * | Map, |
int | update | ||
) |
Open existing vector map (level 1)
Map->name and Map->mapset must be set before.
Map | pointer to Map_info structure |
update | non-zero for write mode, otherwise read-only |
Definition at line 39 of file open_nat.c.
References _, dig__read_head(), dig_file_init(), Map_info::dig_fp, gvfile::file, G_debug(), G_fopen_modify(), G_fopen_old(), G_warning(), GPATH_MAX, GV_COOR_ELEMENT, Map_info::head, Map_info::mapset, Map_info::name, NULL, dig_head::size, Coor_info::size, Vect__get_path(), Vect_coor_info(), and Vect_get_full_name().
int V1_open_old_ogr | ( | struct Map_info * | Map, |
int | update | ||
) |
Open existing OGR layer on non-topological level.
Note: Map->name, Map->mapset, Map->fInfo.ogr.dsn and Map->fInfo.ogr.layer_name must be set before.
[in,out] | Map | pointer to Map_info structure |
update | TRUE for write mode, otherwise read-only |
Definition at line 43 of file open_ogr.c.
References _, Format_info_ogr::cache, Format_info_ogr::ds, Format_info_ogr::dsn, FALSE, Format_info_cache::fid, Map_info::fInfo, G_debug(), G_fatal_error(), G_warning(), Map_info::head, Format_info_ogr::layer, Format_info_ogr::layer_name, NULL, Format_info::ogr, WITH_Z, dig_head::with_z, and WITHOUT_Z.
int V1_open_old_pg | ( | struct Map_info * | Map, |
int | update | ||
) |
Open vector map - PostGIS feature table on non-topological level.
[in,out] | Map | pointer to Map_info structure |
update | TRUE for write mode, otherwise read-only |
Definition at line 70 of file open_pg.c.
References _, Format_info_pg::conn, Format_info_pg::conninfo, DB_SQL_MAX, Map_info::fInfo, G_debug(), G_warning(), Format_info::pg, and Format_info_pg::table_name.
int V1_read_line_nat | ( | struct Map_info * | Map, |
struct line_pnts * | Points, | ||
struct line_cats * | Cats, | ||
off_t | offset | ||
) |
Read vector feature on non-topological level (level 1) - native format - internal use only.
This function implements random access for native format, constraints are ignored!
Map | pointer to Map_info struct | |
[out] | Points | container used to store line points within (pointer to line_pnts struct) |
[out] | Cats | container used to store line categories within (pointer to line_cats struct) |
offset | given offset |
Definition at line 43 of file read_nat.c.
int V1_read_line_ogr | ( | struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c, | ||
off_t | offset | ||
) |
Read feature from OGR layer at given offset (level 1 without topology)
This function implements random access on level 1.
Map | pointer to Map_info structure | |
[out] | line_p | container used to store line points within (pointer line_pnts struct) |
[out] | line_c | container used to store line categories within (pointer line_cats struct) |
offset | given offset |
Definition at line 179 of file read_ogr.c.
int V1_read_line_pg | ( | struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c, | ||
off_t | offset | ||
) |
Read feature from PostGIS layer at given offset (level 1 without topology)
This function implements random access on level 1.
Map | pointer to Map_info structure | |
[out] | line_p | container used to store line points within (pointer line_pnts struct) |
[out] | line_c | container used to store line categories within (pointer line_cats struct) |
offset | given offset |
int V1_read_next_line_nat | ( | struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c | ||
) |
Read next vector feature on non-topological level (level 1) - native format - internal use only.
This function implements sequential access, constraints are reflected, see Vect_set_constraint_region(), Vect_set_constraint_type(), or Vect_set_constraint_field().
Dead features are skipped.
Vect_rewind() can be used to reset reading.
Map | pointer to Map_info struct | |
[out] | line_p | container used to store line points within (pointer to line_pnts struct) |
[out] | line_c | container used to store line categories within (pointer to line_cats struct) |
Definition at line 72 of file read_nat.c.
References Map_info::constraint, Map_info::dig_fp, dig_ftell(), G_debug(), Map_info::region_flag, TRUE, and Vect_get_constraint_box().
int V1_read_next_line_ogr | ( | struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c | ||
) |
Read next feature from OGR layer. Skip empty features (level 1 without topology).
This function implements sequential access.
The action of this routine can be modified by:
Map | pointer to Map_info structure | |
[out] | line_p | container used to store line points within |
[out] | line_c | container used to store line categories within |
Definition at line 50 of file read_ogr.c.
int V1_read_next_line_pg | ( | struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c | ||
) |
Read next feature from PostGIS layer. Skip empty features (level 1 without topology). t This function implements sequential access.
The action of this routine can be modified by:
Map | pointer to Map_info structure | |
[out] | line_p | container used to store line points within (pointer to line_pnts struct) |
[out] | line_c | container used to store line categories within (pointer line_cats struct) |
Definition at line 82 of file read_pg.c.
References G_debug().
int V1_restore_line_nat | ( | struct Map_info * | Map, |
off_t | offset, | ||
off_t | line | ||
) |
Restores feature at level 1 (internal use only)
Map | pointer to Map_info structure |
offset | feature offset |
line | feature id (not used) |
Definition at line 340 of file write_nat.c.
int V1_rewind_nat | ( | struct Map_info * | Map | ) |
Rewind vector map to cause reads to start at beginning on non-topological level (level 1) - native format - internal use only.
Map | pointer to Map_info struct |
Definition at line 27 of file rewind_nat.c.
References Map_info::dig_fp, dig_fseek(), Map_info::head, and dig_head::head_size.
Referenced by V2_rewind_nat().
int V1_rewind_ogr | ( | struct Map_info * | Map | ) |
Rewind vector map (OGR layer) to cause reads to start at beginning (level 1)
Map | pointer to Map_info structure |
Definition at line 32 of file rewind_ogr.c.
References _, Format_info_ogr::cache, Map_info::fInfo, G_debug(), G_fatal_error(), Format_info_ogr::layer, Format_info_cache::lines_next, Format_info_cache::lines_num, Map_info::name, and Format_info::ogr.
Referenced by V2_rewind_ogr().
int V1_rewind_pg | ( | struct Map_info * | Map | ) |
Rewind vector map (PostGIS layer) to cause reads to start at beginning (level 1)
Map | pointer to Map_info structure |
Definition at line 34 of file rewind_pg.c.
References _, Format_info_pg::cache, Format_info_cache::ctype, Format_info_cache::fid, Map_info::fInfo, G_debug(), G_fatal_error(), Format_info_cache::lines_next, Format_info_cache::lines_num, Map_info::name, Format_info_pg::next_line, Format_info::pg, and Vect__close_cursor_pg().
Referenced by V2_rewind_pg().
off_t V1_rewrite_line_nat | ( | struct Map_info * | Map, |
off_t | offset, | ||
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Rewrites feature to 'coor' file at level 1 (internal use only)
If the number of points or cats differs from the original one or the type is changed: GV_POINTS -> GV_LINES or GV_LINES -> GV_POINTS, the old one is deleted and the new is appended to the end of the file.
Old feature is deleted (marked as dead), and a new feature written.
Map | pointer to Map_info structure |
offset | feature offset |
type | feature type (GV_POINT, GV_LINE, ...) |
points | feature geometry |
cats | feature categories |
Definition at line 101 of file write_nat.c.
off_t V1_rewrite_line_ogr | ( | struct Map_info * | Map, |
off_t | offset, | ||
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Rewrites feature at the given offset on level 1 (OGR interface)
This function simply calls V1_delete_line_ogr() and V1_write_line_ogr().
Map | pointer to Map_info structure |
offset | feature offset |
type | feature type (see V1_write_line_ogr() for supported types) |
points | pointer to line_pnts structure (feature geometry) |
cats | pointer to line_cats structure (feature categories) |
Definition at line 88 of file write_ogr.c.
off_t V1_rewrite_line_pg | ( | struct Map_info * | Map, |
off_t | offset, | ||
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Rewrites feature at the given offset (level 1) (PostGIS interface, internal use only)
Only for simple feature access. PostGIS Topology requires level 2.
Map | pointer to Map_info structure |
offset | feature offset |
type | feature type (GV_POINT, GV_LINE, ...) |
points | feature geometry |
cats | feature categories |
Definition at line 179 of file write_pg.c.
off_t V1_write_line_nat | ( | struct Map_info * | Map, |
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Writes feature to 'coor' file at level 1 (internal use only)
Map | pointer to Map_info structure |
type | feature type (GV_POINT, GV_LINE, ...) |
points | feature geometry |
cats | feature categories |
Definition at line 43 of file write_nat.c.
off_t V1_write_line_ogr | ( | struct Map_info * | Map, |
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Writes feature on level 1 (OGR interface)
Note:
Supported feature types:
Map | pointer to Map_info structure |
type | feature type |
points | pointer to line_pnts structure (feature geometry) |
cats | pointer to line_cats structure (feature categories) |
Definition at line 62 of file write_ogr.c.
off_t V1_write_line_pg | ( | struct Map_info * | Map, |
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Writes feature on level 1 (PostGIS interface)
Notes for simple feature access:
Notes for PostGIS Topology access:
Map | pointer to Map_info structure |
type | feature type (GV_POINT, GV_LINE, ...) |
points | pointer to line_pnts structure (feature geometry) |
cats | pointer to line_cats structure (feature categories) |
Definition at line 99 of file write_pg.c.
int V2_close_ogr | ( | struct Map_info * | Map | ) |
Close vector map on topological level (write out fidx file)
Map | pointer to Map_info structure |
Definition at line 90 of file close_ogr.c.
References _, Map_info::fInfo, G_debug(), G_fatal_error(), G_warning(), Map_info::mapset, Map_info::name, Format_info_ogr::offset, Format_info::ogr, Vect__free_offset(), VECT_OPEN, and Vect_save_fidx().
int V2_close_pg | ( | struct Map_info * | Map | ) |
Close vector map (PostGIS layer) on topological level (write out fidx file)
Map | pointer to Map_info structure |
Definition at line 112 of file close_pg.c.
References _, Map_info::fInfo, G_debug(), G_fatal_error(), G_warning(), GPATH_MAX, GV_DIRECTORY, GV_TOPO_ELEMENT, Map_info::mapset, Map_info::name, Format_info_pg::offset, Format_info::pg, Format_info_pg::toposchema_name, Vect__free_offset(), Vect__get_element_path(), VECT_OPEN, and Vect_save_fidx().
int V2_delete_line_nat | ( | struct Map_info * | Map, |
off_t | line | ||
) |
Deletes feature at topological level (internal use only)
Note: requires topology level >= GV_BUILD_BASE.
pointer | to Map_info structure |
line | feature id |
Definition at line 281 of file write_nat.c.
int V2_delete_line_pg | ( | struct Map_info * | Map, |
off_t | line | ||
) |
Deletes feature on topological level (PostGIS interface)
Note: Topology must be built at level >= GV_BUILD_BASE
Calls V2_delete_line_sfa() for simple feature access.
Map | pointer to Map_info structure |
line | feature id to be deleted |
Definition at line 373 of file write_pg.c.
int V2_delete_line_sfa | ( | struct Map_info * | Map, |
off_t | line | ||
) |
Deletes feature on level 2 (OGR/PostGIS interface)
Note: Topology must be built at level >= GV_BUILD_BASE
pointer | to Map_info structure |
line | feature id to be deleted |
Definition at line 191 of file write_sfa.c.
int V2_open_old_ogr | ( | struct Map_info * | Map | ) |
Open existing OGR layer on topological level.
This functions reads feature index (fidx) file required for pseudo-topology.
[in,out] | Map | pointer to Map_info structure |
Definition at line 142 of file open_ogr.c.
References _, Map_info::fInfo, G_debug(), G_fatal_error(), G_warning(), G_zero(), Map_info::mapset, Map_info::name, Format_info_ogr::next_line, Format_info_ogr::offset, Format_info::ogr, Vect_get_full_name(), and Vect_open_fidx().
int V2_open_old_pg | ( | struct Map_info * | Map | ) |
Open vector map - PostGIS feature table on topological level.
Simple feature access:
[in,out] | Map | pointer to Map_info structure |
Definition at line 161 of file open_pg.c.
References _, Format_info_pg::conn, DB_SQL_MAX, Map_info::fInfo, G_debug(), G_fatal_error(), G_warning(), G_zero(), Map_info::mapset, Map_info::name, Format_info_pg::offset, Format_info::pg, Format_info_pg::res, Format_info_pg::toposchema_id, Format_info_pg::toposchema_name, Vect_get_full_name(), and Vect_open_fidx().
int V2_read_line_nat | ( | struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c, | ||
int | line | ||
) |
Read vector feature on topological level (level 2) - native format - internal use only.
This function implements random access for native format, constraints are ignored!
Note: Topology must be built at level >= GV_BUILD_BASE
Map | pointer to Map_info struct | |
[out] | Points | container used to store line points within (pointer to line_pnts struct) |
[out] | Cats | container used to store line categories within (pointer to line_cats struct) |
line | feature id to read (starts at 1) |
Definition at line 136 of file read_nat.c.
int V2_read_line_pg | ( | struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c, | ||
int | line | ||
) |
Read feature from PostGIS layer on topological level.
This function implements random access on level 2.
Note: Topology must be built at level >= GV_BUILD_BASE
Map | pointer to Map_info structure | |
[out] | line_p | container used to store line points within (pointer line_pnts struct) |
[out] | line_c | container used to store line categories within (pointer line_cats struct) |
line | feature id to read |
int V2_read_line_sfa | ( | struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c, | ||
int | line | ||
) |
Reads feature from OGR/PostGIS layer on topological level.
This function implements random access on level 2.
Note: Topology must be built at level >= GV_BUILD_BASE
Map | pointer to Map_info structure | |
[out] | line_p | container used to store line points within (pointer to line_pnts struct) |
[out] | line_c | container used to store line categories within (pointer to line_cats struct) |
line | feature id (starts at 1) |
Definition at line 40 of file read_sfa.c.
int V2_read_next_line_nat | ( | struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c | ||
) |
Read next vector feature on topological level (level 2) - native format - internal use only.
This function implements sequential access, constraints are reflected, see Vect_set_constraint_region(), Vect_set_constraint_type(), or Vect_set_constraint_field().
Use Vect_rewind() to reset reading.
Dead feature are skipped.
Map | pointer to Map_info struct | |
[out] | line_p | container used to store line points within (pointer to line_pnts struct) |
[out] | line_c | container used to store line categories within (pointer to line_cats struct) |
Definition at line 178 of file read_nat.c.
int V2_read_next_line_ogr | ( | struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c | ||
) |
Read next feature from OGR layer on topological level.
This function implements sequential access.
Map | pointer to Map_info structure | |
[out] | line_p | container used to store line points within (pointer to line_pnts struct) |
[out] | line_c | container used to store line categories within (pointer to line_cats struct) |
Definition at line 76 of file read_ogr.c.
int V2_read_next_line_pg | ( | struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c | ||
) |
Read next feature from PostGIS layer on topological level (simple feature access).
This function implements sequential access.
Map | pointer to Map_info structure | |
[out] | line_p | container used to store line points within (pointer to line_pnts struct) |
[out] | line_c | container used to store line categories within (pointer to line_cats struct) |
int V2_restore_line_nat | ( | struct Map_info * | Map, |
off_t | offset, | ||
off_t | line | ||
) |
Restores feature at topological level (internal use only)
Note: requires topology level >= GV_BUILD_BASE.
Map | pointer to Map_info structure |
offset | feature offset to be restored |
line | feature id to be restored |
Definition at line 385 of file write_nat.c.
int V2_rewind_nat | ( | struct Map_info * | Map | ) |
Rewind vector map to cause reads to start at beginning on topological level (level 2) - native format - internal use only.
Map | pointer to Map_info struct |
Definition at line 40 of file rewind_nat.c.
References Map_info::next_line, and V1_rewind_nat().
int V2_rewind_ogr | ( | struct Map_info * | Map | ) |
Rewind vector map (OGR layer) to cause reads to start at beginning on topological level (level 2)
Map | pointer to Map_info structure |
Definition at line 61 of file rewind_ogr.c.
References _, G_debug(), G_fatal_error(), Map_info::name, Map_info::next_line, and V1_rewind_ogr().
int V2_rewind_pg | ( | struct Map_info * | Map | ) |
Rewind vector map (PostGIS layer) to cause reads to start at beginning on topological level (level 2)
Map | pointer to Map_info structure |
Definition at line 70 of file rewind_pg.c.
References _, G_debug(), G_fatal_error(), Map_info::name, Map_info::next_line, and V1_rewind_pg().
off_t V2_rewrite_line_nat | ( | struct Map_info * | Map, |
off_t | line, | ||
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Rewrites feature to 'coor' file at topological level (internal use only)
Note: requires topology level >= GV_BUILD_BASE.
Note: Function returns feature id, but is defined as off_t for compatibility with level 1 functions.
Map | pointer to Map_info structure |
line | feature id to be rewritten |
type | feature type (GV_POINT, GV_LINE, ...) |
points | feature geometry |
cats | feature categories |
Definition at line 156 of file write_nat.c.
off_t V2_rewrite_line_pg | ( | struct Map_info * | Map, |
off_t | line, | ||
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Rewrites feature at topological level (PostGIS interface, internal use only)
Note: Topology must be built at level >= GV_BUILD_BASE
Handle also categories
Store original geometry in tmp table for restore
Map | pointer to Map_info structure |
line | feature id |
type | feature type (GV_POINT, GV_LINE, ...) |
points | feature geometry |
cats | feature categories |
Definition at line 219 of file write_pg.c.
off_t V2_rewrite_line_sfa | ( | struct Map_info * | Map, |
off_t | line, | ||
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Rewrites feature at the given offset on level 2 (OGR/PostGIS interface, pseudo-topological level)
Note: Topology must be built at level >= GV_BUILD_BASE
Map | pointer to Map_info structure |
line | feature id to be rewritten |
type | feature type (see V1_write_line_ogr() for supported types) |
points | pointer to line_pnts structure (feature geometry) |
cats | pointer to line_cats structure feature categories |
Definition at line 151 of file write_sfa.c.
off_t V2_write_line_nat | ( | struct Map_info * | Map, |
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Writes feature to 'coor' file at topological level (internal use only)
Note: Function returns feature id, but is defined as off_t for compatibility with level 1 functions.
Map | pointer to Map_info structure |
type | feature type (GV_POINT, GV_LINE, ...) |
points | feature geometry |
cats | feature categories |
Definition at line 64 of file write_nat.c.
off_t V2_write_line_pg | ( | struct Map_info * | Map, |
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Writes feature on topological level (PostGIS interface)
Calls V2_write_line_sfa() for simple features access.
Map | pointer to Map_info structure |
type | feature type (GV_POINT, GV_LINE, ...) |
points | pointer to line_pnts structure (feature geometry) |
cats | pointer to line_cats structure (feature categories) |
Definition at line 142 of file write_pg.c.
off_t V2_write_line_sfa | ( | struct Map_info * | Map, |
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Writes feature on level 2 (OGR/PostGIS interface, pseudo-topological level)
Map | pointer to Map_info structure |
type | feature type (see V1_write_line_ogr() for list of supported types) |
points | pointer to line_pnts structure (feature geometry) |
cats | pointer to line_cats structure (feature categories) |
Definition at line 49 of file write_sfa.c.
int V__map_overlap | ( | struct Map_info * | Map, |
double | n, | ||
double | s, | ||
double | e, | ||
double | w | ||
) |
void Vect__build_downgrade | ( | struct Map_info * | Map, |
int | build | ||
) |
Downgrade build level (for internal use only)
See Vect_build_nat(), Vect__build_sfa(), and Vect_build_pg() for implementation issues.
Map | pointer to Map_info |
build |
Definition at line 760 of file build.c.
Referenced by Vect__build_sfa().
int Vect__build_sfa | ( | struct Map_info * | Map, |
int | build | ||
) |
Build pseudo-topology (for simple features) - internal use only.
See Vect_build_ogr() and Vect_build_pg() for implementation issues.
Build levels:
Map | pointer to Map_info structure |
build | build level |
Definition at line 694 of file build_sfa.c.
References Plus_head::built, Map_info::format, GV_BUILD_BASE, GV_FORMAT_OGR, GV_FORMAT_OGR_DIRECT, Map_info::plus, and Vect__build_downgrade().
Referenced by Vect_build_ogr(), and Vect_build_pg().
void Vect__init_head | ( | struct Map_info * | Map | ) |
Initialize Map_info head structure (dig_head)
[in,out] | Map | pointer to Map_info structure |
Definition at line 29 of file init_head.c.
References FALSE, G_date(), G_whoami(), G_zero(), Map_info::head, Map_info::plus, Plus_head::release_support, Plus_head::Spidx_built, Plus_head::update_cidx, Vect_set_comment(), Vect_set_date(), Vect_set_map_date(), Vect_set_map_name(), Vect_set_organization(), Vect_set_person(), Vect_set_proj(), Vect_set_scale(), Vect_set_thresh(), and Vect_set_zone().
Referenced by Vect__read_head().
int Vect__read_head | ( | struct Map_info * | Map | ) |
Reads head information from text file (GV_HEAD_ELEMENT) - for internal use only.
Map | pointer to Map_info structure |
Definition at line 116 of file vector/Vlib/header.c.
References _, G_debug(), G_fopen_old(), G_getl2(), G_warning(), GPATH_MAX, GV_HEAD_ELEMENT, Map_info::mapset, Map_info::name, NULL, Vect__get_path(), Vect__init_head(), Vect_get_full_name(), Vect_set_comment(), Vect_set_date(), Vect_set_map_date(), Vect_set_map_name(), Vect_set_organization(), Vect_set_person(), Vect_set_proj(), Vect_set_scale(), Vect_set_thresh(), and Vect_set_zone().
Referenced by Vect_read_header().
int Vect__write_head | ( | const struct Map_info * | Map | ) |
Writes head information to text file (GV_HEAD_ELEMENT)
Map | pointer to Map_info structure |
Definition at line 78 of file vector/Vlib/header.c.
References _, G_fopen_new(), G_warning(), GPATH_MAX, GV_HEAD_ELEMENT, NULL, Vect__get_path(), Vect_get_comment(), Vect_get_date(), Vect_get_full_name(), Vect_get_map_date(), Vect_get_map_name(), Vect_get_organization(), Vect_get_person(), Vect_get_proj(), Vect_get_scale(), Vect_get_thresh(), and Vect_get_zone().
Referenced by V1_close_nat(), V1_close_ogr(), V1_close_pg(), and Vect_write_header().
int Vect_add_dblink | ( | struct dblinks * | p, |
int | number, | ||
const char * | name, | ||
const char * | table, | ||
const char * | key, | ||
const char * | db, | ||
const char * | driver | ||
) |
Add new DB connection to dblinks structure.
[in,out] | p | pointer to existing dblinks structure |
number | layer number (1 for OGR) | |
name | layer name (layer for OGR) - if not given use table name | |
table | table name (layer for OGR) | |
key | key name | |
db | database name (datasource for OGR) | |
driver | driver name (dbf, postgresql, ogr, ...) |
int Vect_append_point | ( | struct line_pnts * | Points, |
double | x, | ||
double | y, | ||
double | z | ||
) |
Appends one point to the end of a line.
If you are re-using a line struct, be sure to clear out old data first by calling Vect_reset_line().
Calls G_fatal_error() when out of memory.
Points | pointer to line_pnts structure |
x,y,z | point coordinates to be added |
int Vect_append_points | ( | struct line_pnts * | Points, |
const struct line_pnts * | APoints, | ||
int | direction | ||
) |
Appends points to the end of a line.
Note, this will append to whatever is in line_pnts structure. If you are re-using a line struct, be sure to clear out old data first by calling Vect_reset_line().
Points | pointer to line_pnts structure |
APoints | points to be included |
direction | direction (GV_FORWARD, GV_BACKWARD) |
int Vect_area_alive | ( | const struct Map_info * | Map, |
int | area | ||
) |
Check if area is alive or dead (topological level required)
Note: Topology must be built at level >= GV_BUILD_AREAS
Map | pointer to Map_info structure |
area | area id |
Definition at line 245 of file vector/Vlib/read.c.
References _, Plus_head::Area, G_warning(), Plus_head::n_areas, NULL, and Map_info::plus.
Referenced by vector2perimeters(), and Vedit_delete_areas_cat().
void Vect_area_buffer2 | ( | const struct Map_info * | Map, |
int | area, | ||
double | da, | ||
double | db, | ||
double | dalpha, | ||
int | round, | ||
int | caps, | ||
double | tol, | ||
struct line_pnts ** | oPoints, | ||
struct line_pnts *** | iPoints, | ||
int * | inner_count | ||
) |
Creates buffer around area.
Map | vector map | |
area | area id | |
da | distance along major axis | |
db | distance along minor axis | |
dalpha | angle between 0x and major axis | |
round | make corners round | |
caps | add caps at line ends | |
tol | maximum distance between theoretical arc and output segments | |
[out] | oPoints | output polygon outer border (ccw order) |
[out] | inner_count | number of holes |
[out] | iPoints | array of output polygon's holes (cw order) |
int Vect_array_to_cat_list | ( | const int * | vals, |
int | nvals, | ||
struct cat_list * | list | ||
) |
Convert ordered array of integers to cat_list structure.
vals | array of integers | |
nvals | number of values | |
[in,out] | list | pointer to cat_list structure |
Definition at line 444 of file vector/Vlib/cats.c.
References cat_list::alloc_ranges, G_debug(), G_realloc, cat_list::max, cat_list::min, and cat_list::n_ranges.
(Re)Attach centroids in given bounding box to areas
Warning: If map is updated on level2, it may happen that previously correct island becomes incorrect. In that case, centroid of area forming the island is reattached to outer area, because island polygon is not excluded.
+-----------+ +-----------+ | 1 | | 1 | | +---+---+ | | +---+---+ | | | 2 | 3 | | | | 2 | | | | x | | | -> | | x | | | | | | | | | | | | +---+---+ | | +---+---+ | | | | | +-----------+ +-----------+ centroid is centroid is attached to 2 reattached to 1
Because of this, when the centroid is reattached to another area, it is always necessary to check if original area exist, unregister centroid from previous area. To simplify code, this is implemented so that centroid is always first unregistered and if new area is found, it is registered again.
Map | vector map |
box | bounding box |
(Re)Attach isle to area
Map | vector map |
isle | isle id |
box | isle bbox |
Definition at line 378 of file build.c.
References P_isle::area, dig_area_add_isle(), G_debug(), Plus_head::Isle, Map_info::plus, and Vect_isle_find_area().
Referenced by Vect_attach_isles().
(Re)Attach isles in given bounding box to areas
The warning for Vect_attach_centroids() applies here as well
Map | vector map |
box | bounding box |
Definition at line 417 of file build.c.
References P_isle::area, boxlist::box, dig_area_del_isle(), bound_box::E, G_debug(), boxlist::id, Plus_head::Isle, bound_box::N, boxlist::n_values, NULL, Map_info::plus, bound_box::S, TRUE, Vect_attach_isle(), Vect_get_area_box(), Vect_new_boxlist(), Vect_select_isles_by_box(), and bound_box::W.
int Vect_box_clip | ( | double * | x, |
double * | y, | ||
double * | c_x, | ||
double * | c_y, | ||
const struct bound_box * | Box | ||
) |
Clip coordinates to box, if necessary, lines extending outside of a box.
A line represented by the coordinates x, y and c_x, c_y is clipped to the window defined by s (south), n (north), w (west), and e (east). Note that the following constraints must be true: w <e s <n The x and c_x are values to be compared to w and e. The y and c_y are values to be compared to s and n. The x and c_x values returned lie between w and e. The y and c_y values returned lie between s and n.
x,y | coordinates (w, e) |
c_x,c_y | coordinates (s, n) |
Box | boundary box |
Definition at line 167 of file vector/Vlib/box.c.
References bound_box::E, bound_box::N, bound_box::S, bound_box::W, W, and x.
Copy box B to box A.
A | boundary A |
B | boundary B |
Definition at line 103 of file vector/Vlib/box.c.
Referenced by Vect_get_map_box().
Extend box A by box B.
A | boundary A |
B | boundary B |
Definition at line 124 of file vector/Vlib/box.c.
Tests for overlap of two boxes.
A | boundary box A |
B | boundary box B |
Definition at line 84 of file vector/Vlib/box.c.
Append new item to the end of list if not yet present.
[in,out] | list | pointer to ilist structure |
id | new item to append to the end of list | |
box | bounding box |
Definition at line 288 of file vector/Vlib/list.c.
References boxlist::alloc_values, boxlist::box, G_realloc, boxlist::have_boxes, boxlist::id, boxlist::n_values, and NULL.
Referenced by Vect_boxlist_append_boxlist().
Append new items to the end of list if not yet present.
[in,out] | alist | pointer to boxlist structure where items will be appended |
blist | pointer to boxlist structure with new items |
Definition at line 330 of file vector/Vlib/list.c.
References bound_box::B, boxlist::box, bound_box::E, boxlist::have_boxes, boxlist::id, bound_box::N, boxlist::n_values, NULL, bound_box::S, bound_box::T, Vect_boxlist_append(), and bound_box::W.
int Vect_boxlist_delete | ( | struct boxlist * | list, |
int | id | ||
) |
Remove a given value (item) from list.
[in,out] | list | pointer to boxlist structure |
id | to remove |
Definition at line 361 of file vector/Vlib/list.c.
References boxlist::box, boxlist::have_boxes, boxlist::id, boxlist::n_values, and NULL.
Referenced by Vect_boxlist_delete_boxlist().
Delete list from existing list.
[in,out] | alist | pointer to original boxlist structure, |
blist | pointer to boxlist structure with items to delete |
Definition at line 393 of file vector/Vlib/list.c.
References boxlist::id, boxlist::n_values, NULL, and Vect_boxlist_delete().
Break lines in vector map at each intersection.
For details see Vect_break_lines_list().
Map | input vector map | |
type | feature type | |
[out] | Err | vector map where points at intersections will be written or NULL |
Definition at line 33 of file break_lines.c.
int Vect_break_lines_list | ( | struct Map_info * | Map, |
struct ilist * | List_break, | ||
struct ilist * | List_ref, | ||
int | type, | ||
struct Map_info * | Err | ||
) |
Break selected lines in vector map at each intersection.
Breaks selected lines specified by type in vector map. Points at intersections may be optionally written to error map. Input vector map must be opened on level 2 for update at least on GV_BUILD_BASE.
The function also breaks lines forming collapsed loop, for example 0,0;1,0;0,0 is broken at 1,0.
If reference lines are given (List_ref) break only lines which intersect reference lines.
Map | input vector map | |
List_break | list of lines (NULL for all lines in vector map) | |
List_ref | list of reference lines or NULL | |
type | feature type | |
[out] | Err | vector map where points at intersections will be written or NULL |
Definition at line 62 of file break_lines.c.
Break polygons in vector map.
Breaks lines specified by type in vector map. Points at intersections may be optionally written to error map. Input vector map must be opened on level 2 for update at least on GV_BUILD_BASE.
Function is optimized for closed polygons rings (e.g. imported from OGR) but with clean geometry - adjacent polygons mostly have identical boundary. Function creates database of ALL points in the vector map, and then is looking for those where polygons should be broken. Lines may be broken only at points existing in input vector map!
Map | input map where polygons will be broken |
type | type of line to be broken (GV_LINE or GV_BOUNDARY) |
Err | vector map where points at intersections will be written or NULL |
Definition at line 671 of file break_polygons.c.
int Vect_build | ( | struct Map_info * | Map | ) |
Build topology for vector map.
Map | vector map |
Definition at line 576 of file build.c.
References GV_BUILD_ALL, and Vect_build_partial().
Referenced by Vect_close().
int Vect_build_line_area | ( | struct Map_info * | Map, |
int | iline, | ||
int | side | ||
) |
Build area on given side of line (GV_LEFT or GV_RIGHT)
Map | pointer to Map_info structure |
iline | line id |
side | side (GV_LEFT or GV_RIGHT) |
Definition at line 77 of file build.c.
References _, dig_add_area(), dig_add_isle(), dig_build_area_with_line(), dig_find_area_poly(), dig_line_box(), dig_line_get_area(), G_debug(), G_fatal_error(), G_warning(), line_pnts::n_points, NULL, Map_info::plus, Vect__get_area_points(), Vect_line_prune(), and Vect_new_line_struct().
int Vect_build_nat | ( | struct Map_info * | Map, |
int | build | ||
) |
Build topology.
Map | vector map |
build | build level |
Definition at line 34 of file build_nat.c.
int Vect_build_ogr | ( | struct Map_info * | Map, |
int | build | ||
) |
Build pseudo-topology (simple features) for OGR layer.
Build levels:
Map | pointer to Map_info structure |
build | build level |
Definition at line 49 of file build_ogr.c.
References _, Format_info_offset::array, Plus_head::built, Format_info_ogr::ds, Format_info_ogr::dsn, Map_info::fInfo, G_debug(), G_fatal_error(), G_free(), G_message(), G_warning(), G_zero(), GV_BUILD_BASE, GV_BUILD_NONE, Format_info_ogr::layer, Format_info_ogr::layer_name, Format_info_ogr::offset, Format_info::ogr, Map_info::plus, Vect__build_sfa(), Vect_get_finfo_format_info(), and Vect_get_finfo_geometry_type().
int Vect_build_partial | ( | struct Map_info * | Map, |
int | build | ||
) |
Build partial topology for vector map.
Should only be used in special cases of vector processing.
This functions optionally builds only some parts of topology. Highest level is specified by build parameter which may be:
If functions is called with build lower than current value of the Map, the level is downgraded to requested value.
All calls to Vect_write_line(), Vect_rewrite_line(), Vect_delete_line() respect the last value of build used in this function.
Note that the functions has effect only if requested level is higher than current level, to rebuild part of topology, call first downgrade and then upgrade, for example:
Map | vector map |
build | highest level of build |
Definition at line 847 of file build.c.
References _, Plus_head::built, dig_cidx_free(), dig_cidx_init(), Map_info::fInfo, Map_info::format, G_debug(), G_fatal_error(), G_message(), GV_BUILD_ALL, GV_BUILD_NONE, GV_FORMAT_OGR_DIRECT, GV_FORMAT_POSTGIS, Map_info::head, Map_info::level, LEVEL_1, Format_info::pg, Map_info::plus, Plus_head::Spidx_built, Plus_head::spidx_with_z, Map_info::support_updated, Map_info::temporary, Format_info_pg::toposchema_name, TRUE, Vect_get_full_name(), Vect_open_sidx(), dig_head::with_z, and Plus_head::with_z.
Referenced by Vect_build().
int Vect_build_pg | ( | struct Map_info * | Map, |
int | build | ||
) |
Build topology for PostGIS layer.
Build levels:
Map | pointer to Map_info structure |
build | build level |
Definition at line 57 of file build_pg.c.
References _, Format_info_offset::array, Plus_head::built, Format_info_pg::conn, Format_info_pg::db_name, FALSE, Format_info_pg::feature_type, Format_info_pg::fid_column, Map_info::fInfo, G_debug(), G_free(), G_message(), G_warning(), G_zero(), GV_BUILD_BASE, GV_BUILD_NONE, Format_info_pg::inTransaction, Format_info_pg::offset, Format_info::pg, Map_info::plus, SF_GEOMETRY, Format_info_pg::table_name, Format_info_pg::toposchema_name, Vect__build_sfa(), Vect__execute_pg(), Vect_get_finfo_format_info(), and Vect_get_finfo_geometry_type().
int Vect_build_sidx | ( | struct Map_info * | Map | ) |
Create spatial index if necessary.
To be used in modules. Map must be opened on level 2.
[in,out] | Map | pointer to vector map |
Definition at line 1208 of file build.c.
References _, G_fatal_error(), Map_info::level, Map_info::plus, Plus_head::Spidx_built, and Vect_build_sidx_from_topo().
int Vect_build_sidx_from_topo | ( | const struct Map_info * | Map | ) |
Create spatial index from topology if necessary (not longer supported)
Map | pointer to vector map |
Definition at line 1228 of file build.c.
References _, G_debug(), G_warning(), and Vect_get_full_name().
Referenced by Vect_build_sidx(), and Vect_sidx_dump().
int Vect_cat_del | ( | struct line_cats * | Cats, |
int | field | ||
) |
Delete all categories of given layer.
[in,out] | Cats | line_cats structure |
field | layer number |
Definition at line 221 of file vector/Vlib/cats.c.
References line_cats::cat, line_cats::field, and line_cats::n_cats.
Referenced by Vect_field_cat_del().
int Vect_cat_get | ( | const struct line_cats * | Cats, |
int | field, | ||
int * | cat | ||
) |
Get first found category of given field.
cat is set to first category found or -1 if field was not found
Cats | pointer line_cats structure | |
field | layer number | |
[out] | cat | pointer to variable where cat will be written (can be NULL) |
Definition at line 156 of file vector/Vlib/cats.c.
References line_cats::cat, line_cats::field, GV_FIELD_MAX, and line_cats::n_cats.
Referenced by NetA_initialise_varray().
int Vect_cat_in_array | ( | int | cat, |
const int * | array, | ||
int | ncats | ||
) |
Check if category is in ordered array of integers.
cat | category number |
array | ordered array of integers |
ncats | number of categories in array |
Definition at line 707 of file vector/Vlib/cats.c.
int Vect_cat_in_cat_list | ( | int | cat, |
const struct cat_list * | list | ||
) |
Check if category number is in list.
cat | category number |
list | cat_list structure |
Definition at line 544 of file vector/Vlib/cats.c.
References FALSE, max, cat_list::min, cat_list::n_ranges, and TRUE.
Referenced by Vect_cats_in_constraint().
int Vect_cat_list_to_array | ( | const struct cat_list * | list, |
int ** | vals, | ||
int * | nvals | ||
) |
Convert cat_list struct to ordered array of unique integers.
Output array do not contain duplicate items.
Allocated array should be freed by G_free().
Definition at line 489 of file vector/Vlib/cats.c.
References G_debug(), G_realloc, cat_list::max, cat_list::min, cat_list::n_ranges, and NULL.
int Vect_cat_set | ( | struct line_cats * | Cats, |
int | field, | ||
int | cat | ||
) |
Add new field/cat to category structure if doesn't exist yet.
[in,out] | Cats | line_cats structure |
[in] | field | layer number |
[in] | cat | category number |
Definition at line 104 of file vector/Vlib/cats.c.
References _, line_cats::alloc_cats, line_cats::cat, dig_alloc_cats(), line_cats::field, G_fatal_error(), GV_NCATS_MAX, and line_cats::n_cats.
Check if categories match with category constraints.
Definition at line 667 of file vector/Vlib/cats.c.
References _, line_cats::cat, line_cats::field, G_warning(), line_cats::n_cats, and Vect_cat_in_cat_list().
struct cat_list* Vect_cats_set_constraint | ( | struct Map_info * | Map, |
int | layer, | ||
char * | where, | ||
char * | catstr | ||
) |
Set category constraints using 'where' or 'cats' option and layer number.
Map | pointer to Map_info structure |
layer | layer number |
where | where statement |
catstr | category list as string |
Definition at line 565 of file vector/Vlib/cats.c.
References _, field_info::database, db_close_database_shutdown_driver(), db_select_int(), db_start_driver_open_database(), field_info::driver, G_fatal_error(), G_verbose_message(), G_warning(), field_info::key, list, n_, NULL, field_info::table, and Vect_get_field().
int Vect_check_dblink | ( | const struct dblinks * | p, |
int | field, | ||
const char * | name | ||
) |
Check if DB connection exists in dblinks structure.
p | pointer to existing dblinks structure |
field | layer number |
name | layer name |
Definition at line 244 of file field.c.
References dblinks::field, G_debug(), dblinks::n_fields, field_info::name, NULL, and field_info::number.
Referenced by Vect_map_check_dblink().
int Vect_check_input_output_name | ( | const char * | input, |
const char * | output, | ||
int | error | ||
) |
Check for input and output vector map name.
Check
input | input name |
output | output name |
error | error type G_FATAL_EXIT, G_FATAL_PRINT, G_FATAL_RETURN |
Definition at line 89 of file legal_vname.c.
Check for and count intersecting lines, do not break.
For details see Vect_check_line_breaks_list().
Map | input vector map | |
type | feature type | |
[out] | Err | vector map where points at intersections will be written or NULL |
Definition at line 80 of file break_lines.c.
int Vect_check_line_breaks_list | ( | struct Map_info * | Map, |
struct ilist * | List_break, | ||
struct ilist * | List_ref, | ||
int | type, | ||
struct Map_info * | Err | ||
) |
Check for and count intersecting lines, do not break.
If List_break is given, only lines in the list are checked for intersections.
If reference lines are given (List_ref) break only lines which intersect reference lines.
Map | input vector map | |
List_break | list of lines (NULL for all lines in vector map) | |
List_ref | list of reference lines or NULL | |
type | feature type | |
[out] | Err | vector map where points at intersections will be written or NULL |
Definition at line 102 of file break_lines.c.
void Vect_chtype_bridges | ( | struct Map_info * | Map, |
struct Map_info * | Err, | ||
int * | lines_changed, | ||
int * | bridges_changed | ||
) |
Change type of bridges in vector map.
Change the type of bridges (type boundary) connecting areas to islands or 2 islands. Islands and areas must be already clean, i.e. without dangles. Bridge may be formed by more lines. Optionally changed bridges are written to error map. Input map must be opened on level 2 for update at least on level GV_BUILD_BASE.
Map | input map where bridges are changed |
Err | vector map where changed bridges are written or NULL |
lines_changed | number of lines changed |
bridges_changed | Err number of bridges changed |
Change boundary dangles to lines.
Change boundary dangles to lines.
Boundary is considered to be a dangle if on at least one end node is no other boundary. If a dangle is formed by more boundaries, such string of boundaries is taken as one dangle.
Optionally deleted dangles are written to error map.
Input map must be opened on level 2 for update at least on GV_BUILD_BASE.
Map | input map where have to be deleted | |
maxlength | maxlength of dangles or -1 for all dangles | |
[out] | Err | vector map where deleted dangles are written or NULL |
int Vect_cidx_dump | ( | const struct Map_info * | Map, |
FILE * | out | ||
) |
Write (dump) category index in text form to file.
Map | pointer to Map_info structure | |
[out] | out | output file |
Definition at line 419 of file Vlib/cindex.c.
References Cat_index::field, and G_debug().
void Vect_cidx_find_all | ( | const struct Map_info * | Map, |
int | layer, | ||
int | type_mask, | ||
int | cat, | ||
struct ilist * | lines | ||
) |
Find all line/area id's for given category.
Map | pointer to Map_info structure | |
layer | layer number | |
type_mask | feature type of objects to search for | |
cat | category number | |
[out] | lines | array of ids of found lines/points |
Definition at line 372 of file Vlib/cindex.c.
int Vect_cidx_find_next | ( | const struct Map_info * | Map, |
int | field_index, | ||
int | cat, | ||
int | type_mask, | ||
int | start_index, | ||
int * | type, | ||
int * | id | ||
) |
Find next line/area id for given category, start_index and type_mask.
Map | pointer to Map_info structure | |
field_index | layer index | |
cat | category number | |
type_mask | requested feature type | |
start_index | start search at this index (0 - whole category index) | |
[out] | type | returned type |
[out] | id | returned line/area id |
Definition at line 325 of file Vlib/cindex.c.
int Vect_cidx_get_cat_by_index | ( | const struct Map_info * | Map, |
int | field_index, | ||
int | cat_index, | ||
int * | cat, | ||
int * | type, | ||
int * | id | ||
) |
Get category, feature type and id for given layer and category index.
Map | pointer to Map_info structure | |
field_index | layer index | |
cat_index | category index | |
[out] | cat | category number |
[out] | type | feature type |
[out] | id | feature id |
Definition at line 261 of file Vlib/cindex.c.
int Vect_cidx_get_field_index | ( | const struct Map_info * | Map, |
int | field | ||
) |
Get layer index for given layer number.
Map | pointer to Map_info structure |
field | layer number |
Definition at line 113 of file Vlib/cindex.c.
References G_debug().
int Vect_cidx_get_field_number | ( | const struct Map_info * | Map, |
int | index | ||
) |
Get layer number for given index.
G_fatal_error() is called when index not found.
Map | pointer to Map_info structure |
index | layer index: from 0 to Vect_cidx_get_num_fields() - 1 |
Definition at line 96 of file Vlib/cindex.c.
int Vect_cidx_get_num_cats_by_index | ( | const struct Map_info * | Map, |
int | index | ||
) |
Get number of categories for given layer index.
Map | pointer to Map_info structure |
index | layer index |
Definition at line 159 of file Vlib/cindex.c.
int Vect_cidx_get_num_fields | ( | const struct Map_info * | Map | ) |
Get number of layers in category index.
Map | pointer to Map_info structure |
Definition at line 79 of file Vlib/cindex.c.
int Vect_cidx_get_num_types_by_index | ( | const struct Map_info * | Map, |
int | field_index | ||
) |
Get number of feature types for given layer index.
G_fatal_error() is called when index not found.
Map | pointer to Map_info structure |
field_index | layer index |
Definition at line 178 of file Vlib/cindex.c.
int Vect_cidx_get_num_unique_cats_by_index | ( | const struct Map_info * | Map, |
int | index | ||
) |
Get number of unique categories for given layer index.
G_fatal_error() is called when index not found.
Map | pointer to Map_info structure |
index | layer index (starts at 0) |
Definition at line 142 of file Vlib/cindex.c.
int Vect_cidx_get_type_count | ( | const struct Map_info * | Map, |
int | field, | ||
int | type | ||
) |
Get count of features of certain type by layer and type.
Map | pointer to Map_info structure |
field | layer number |
type | feature type |
Definition at line 221 of file Vlib/cindex.c.
int Vect_cidx_get_type_count_by_index | ( | const struct Map_info * | Map, |
int | field_index, | ||
int | type_index, | ||
int * | type, | ||
int * | count | ||
) |
Get count of feature types for given field and type index.
Map | pointer to Map_info structure | |
field_index | layer index | |
type_index | type index | |
[out] | type | feature type (GV_POINT, ...) |
[out] | count | number of features or NULL |
Definition at line 198 of file Vlib/cindex.c.
int Vect_cidx_get_unique_cats_by_index | ( | struct Map_info * | Map, |
int | field_index, | ||
struct ilist * | list | ||
) |
Get list of unique categories for given layer index.
Map | pointer to Map_info structure | |
field_index | layer index | |
[out] | list | output list of cats |
Definition at line 287 of file Vlib/cindex.c.
int Vect_cidx_open | ( | struct Map_info * | Map, |
int | head_only | ||
) |
Read category index from cidx file if exists.
Map | pointer to Map_info structure |
head_only | read only header of the file |
Definition at line 519 of file Vlib/cindex.c.
References _, dig_file_init(), dig_read_cidx(), gvfile::file, G_debug(), G_fopen_old(), G_warning(), GPATH_MAX, GV_CIDX_ELEMENT, Map_info::mapset, Map_info::name, NULL, Map_info::plus, Vect__get_element_path(), Vect__get_path(), and Vect_get_full_name().
int Vect_cidx_save | ( | struct Map_info * | Map | ) |
Save category index to binary file (cidx)
Map | pointer to Map_info structure |
Definition at line 475 of file Vlib/cindex.c.
Clean small angles at nodes.
It may happen that even if the angle between 2 boundaries at node is very small, the calculated angle is 0 because of representation error. The map must be built at least on level GV_BUILD_BASE
Map | input map | |
otype | feature type | |
[out] | Err | vector map where error line segments are written |
Definition at line 34 of file clean_nodes.c.
int Vect_close | ( | struct Map_info * | Map | ) |
Close vector map.
Map | pointer to Map_info |
Definition at line 76 of file vector/Vlib/close.c.
References _, Plus_head::built, Format_info_pg::conninfo, Format_info_ogr::dsn, FALSE, Map_info::fInfo, Map_info::format, G_debug(), G_find_file2(), G_find_key_value(), G_fopen_old(), G_fread_key_value(), G_free(), G_mapset(), G_store(), G_strcasecmp(), G_warning(), getenv(), GV_BUILD_ALL, GV_FORMAT_OGR, GV_FORMAT_POSTGIS, Map_info::level, Map_info::mapset, Map_info::name, Format_info::ogr, Format_info::pg, Map_info::plus, Map_info::support_updated, Map_info::temporary, TRUE, Vect_build(), Vect_copy_head_data(), Vect_copy_map_dblinks(), Vect_copy_map_lines_field(), Vect_get_name(), Vect_hist_copy(), Vect_is_3d(), Vect_map_del_dblink(), and Vect_open_new().
Update Coor_info structure.
Definition at line 975 of file vector/Vlib/open.c.
References _, Map_info::dig_fp, dig_fseek(), dig_ftell(), Map_info::format, G_debug(), G_warning(), GPATH_MAX, GV_COOR_ELEMENT, GV_FORMAT_NATIVE, GV_FORMAT_OGR, GV_FORMAT_OGR_DIRECT, GV_FORMAT_POSTGIS, Coor_info::mtime, Map_info::open, Coor_info::size, Vect__get_element_path(), and VECT_OPEN_CODE.
Referenced by V1_close_nat(), V1_open_old_nat(), and Vect_open_topo().
int Vect_copy | ( | const char * | in, |
const char * | mapset, | ||
const char * | out | ||
) |
Copy vector map including attribute tables.
Note: Output vector map is overwritten if exists!
in | name if vector map to be copied |
mapset | mapset name where the input map is located |
out | name for output vector map (new map is created in current mapset) |
Definition at line 124 of file map.c.
References _, G_debug(), G_fatal_error(), G_file_name(), G_find_vector2(), G_make_mapset_element(), G_mapset(), G_name_is_fully_qualified(), G_warning(), GMAPSET_MAX, GNAME_MAX, GPATH_MAX, GV_CIDX_ELEMENT, GV_COOR_ELEMENT, GV_DIRECTORY, GV_FRMT_ELEMENT, GV_HEAD_ELEMENT, GV_HIST_ELEMENT, GV_SIDX_ELEMENT, GV_TOPO_ELEMENT, NULL, Vect_delete(), and Vect_legal_filename().
Referenced by M_do_copy().
Copy header data from one to another map.
from | target vector map | |
[out] | to | destination vector map |
Definition at line 77 of file init_head.c.
References Vect_get_comment(), Vect_get_date(), Vect_get_map_date(), Vect_get_map_name(), Vect_get_organization(), Vect_get_person(), Vect_get_scale(), Vect_get_thresh(), Vect_get_zone(), Vect_set_comment(), Vect_set_date(), Vect_set_map_date(), Vect_set_map_name(), Vect_set_organization(), Vect_set_person(), Vect_set_scale(), Vect_set_thresh(), and Vect_set_zone().
Referenced by Vect_close().
Copy DB links from input vector map to output vector map.
In | pointer to Map_info structure (input) |
Out | pointer to Map_info structure (output) |
first_only | TRUE to copy only first link otherwise all DB links are copied |
Definition at line 197 of file field.c.
References _, field_info::database, field_info::driver, G_warning(), field_info::key, field_info::name, field_info::number, field_info::table, Vect_get_dblink(), Vect_get_num_dblinks(), and Vect_map_add_dblink().
Referenced by Vect_close().
Copy all alive vector features from input vector map to output vector map.
In | input vector map | |
[out] | Out | output vector map |
Definition at line 57 of file vector/Vlib/copy.c.
References Vect_copy_map_lines_field().
Copy all alive vector features from given layer from input vector map to output vector map.
Note: Try to copy on level 2 otherwise level 1 is used.
In | input vector map | |
field | layer number (-1 for all layers) | |
[out] | Out | output vector map |
Definition at line 75 of file vector/Vlib/copy.c.
Referenced by Vect_close(), and Vect_copy_map_lines().
int Vect_copy_pnts_to_xyz | ( | const struct line_pnts * | Points, |
double * | x, | ||
double * | y, | ||
double * | z, | ||
int * | n | ||
) |
int Vect_copy_table | ( | const struct Map_info * | In, |
struct Map_info * | Out, | ||
int | field_in, | ||
int | field_out, | ||
const char * | field_name, | ||
int | type | ||
) |
Copy attribute table linked to vector map based on type.
In | input vector map | |
[out] | Out | output vector map |
field_in | input layer number | |
field_out | output layer number | |
field_name | layer name (can be NULL) | |
type | how many tables are linked to map: GV_1TABLE / GV_MTABLE |
Definition at line 652 of file vector/Vlib/copy.c.
int Vect_copy_table_by_cat_list | ( | const struct Map_info * | In, |
struct Map_info * | Out, | ||
int | field_in, | ||
int | field_out, | ||
const char * | field_name, | ||
int | type, | ||
const struct cat_list * | cat_list | ||
) |
Copy attribute table linked to vector map based on category list.
If cat_list is NULL, then Vect_copy_table() is called.
In | input vector map | |
[out] | Out | output vector map |
field_in | input layer number | |
field_out | output layer number | |
field_name | layer name (can be NULL) | |
type | how many tables are linked to map: GV_1TABLE / GV_MTABLE | |
cat_list | pointer to cat_list struct (can be NULL) |
Definition at line 676 of file vector/Vlib/copy.c.
int Vect_copy_table_by_cats | ( | const struct Map_info * | In, |
struct Map_info * | Out, | ||
int | field_in, | ||
int | field_out, | ||
const char * | field_name, | ||
int | type, | ||
int * | cats, | ||
int | ncats | ||
) |
Copy attribute table linked to vector map based on category numbers.
In | input vector map | |
[out] | Out | output vector map |
field_in | input layer number | |
field_out | output layer number | |
field_name | layer name (can be NULL) | |
type | how many tables are linked to map: GV_1TABLE / GV_MTABLE | |
cats | pointer to array of cats or NULL | |
ncats | number of cats in 'cats' |
Definition at line 716 of file vector/Vlib/copy.c.
Copy attribute tables linked to vector map.
Copy all attribute tables linked to the vector map if field is 0, or selected attribute table defined by given field if field > 0.
Notice, that if input vector map has no tables defined, it will copy nothing and return 0 (success).
In | input vector map | |
[out] | Out | output vector map |
field | layer number (0 for all tables linked to the vector map) |
Definition at line 603 of file vector/Vlib/copy.c.
int Vect_copy_xyz_to_pnts | ( | struct line_pnts * | Points, |
const double * | x, | ||
const double * | y, | ||
const double * | z, | ||
int | n | ||
) |
struct field_info* Vect_default_field_info | ( | struct Map_info * | Map, |
int | field, | ||
const char * | field_name, | ||
int | type | ||
) |
Get default information about link to database for new dblink.
Map | pointer to Map_info structure |
field | layer number |
field_name | layer name |
type | how many tables are linked to map: GV_1TABLE / GV_MTABLE |
int Vect_delete | ( | const char * | map | ) |
Delete vector map including attribute tables.
Vector map must be located in current mapset.
map | name of vector map to be delete |
Definition at line 370 of file map.c.
References FALSE, and Vect__delete().
Referenced by M_do_remove(), and Vect_copy().
int Vect_delete_line | ( | struct Map_info * | Map, |
off_t | line | ||
) |
Delete existing feature (topological level required)
Note: Topology must be built at level >= GV_BUILD_BASE
A warning is printed on error.
Map | pointer to Map_info structure |
line | feature id (level 2) or feature offset (level 1) |
Definition at line 253 of file vector/Vlib/write.c.
void Vect_destroy_boxlist | ( | struct boxlist * | list | ) |
Frees all memory associated with a struct boxlist, including the struct itself.
[in,out] | list | pointer to ilist structure |
Definition at line 265 of file vector/Vlib/list.c.
References boxlist::alloc_values, boxlist::box, G_free(), boxlist::id, and NULL.
void Vect_destroy_cat_list | ( | struct cat_list * | p | ) |
Frees allocated cat_list memory.
p | pointer to line_cats structure |
Definition at line 326 of file vector/Vlib/cats.c.
References G_free(), cat_list::max, cat_list::min, and cat_list::n_ranges.
void Vect_destroy_cats_struct | ( | struct line_cats * | p | ) |
Frees all memory associated with line_cats structure, including the struct itself.
p | line_cats structure |
Definition at line 80 of file vector/Vlib/cats.c.
References line_cats::cat, line_cats::field, G_free(), and line_cats::n_cats.
Referenced by NetA_initialise_varray().
void Vect_destroy_line_struct | ( | struct line_pnts * | p | ) |
Frees all memory associated with a line_pnts structure, including the structure itself.
p | pointer to line_pnts structure |
Definition at line 77 of file line.c.
References line_pnts::alloc_points, G_free(), line_pnts::x, line_pnts::y, and line_pnts::z.
Referenced by Vect__free_cache(), and vector2perimeters().
void Vect_destroy_list | ( | struct ilist * | list | ) |
Frees all memory associated with a struct ilist, including the struct itself.
[in,out] | list | pointer to ilist structure |
Definition at line 70 of file vector/Vlib/list.c.
References ilist::alloc_values, G_free(), NULL, and ilist::value.
void Vect_destroy_map_struct | ( | struct Map_info * | p | ) |
int Vect_fidx_dump | ( | const struct Map_info * | Map, |
FILE * | out | ||
) |
Dump feature index to file.
Map | pointer to Map_info struct |
out | file for output (stdout/stderr for example) |
Definition at line 744 of file build_sfa.c.
References _, Format_info_offset::array, Format_info_offset::array_num, Map_info::fInfo, Map_info::format, G_warning(), GV_FORMAT_OGR, GV_FORMAT_POSTGIS, Format_info_ogr::offset, Format_info_pg::offset, Format_info::ogr, Format_info::pg, Format_info_pg::toposchema_name, Vect_get_finfo_geometry_type(), Vect_get_num_lines(), Vect_maptype(), and Vect_maptype_info().
int Vect_field_cat_del | ( | struct line_cats * | Cats, |
int | field, | ||
int | cat | ||
) |
Delete field/cat from line_cats structure.
[in,out] | Cats | line_cats structure |
field | layer number | |
cat | category to be deleted or -1 to delete all cats of given field |
Definition at line 256 of file vector/Vlib/cats.c.
References line_cats::cat, line_cats::field, line_cats::n_cats, and Vect_cat_del().
Get list of categories of given field.
Cats | line_cats structure | |
field | layer number | |
[out] | cats | pointer to list where cats will be written |
Definition at line 192 of file vector/Vlib/cats.c.
References line_cats::cat, line_cats::field, GV_FIELD_MAX, line_cats::n_cats, ilist::n_values, Vect_list_append(), and Vect_reset_list().
int Vect_find_area | ( | struct Map_info * | Map, |
double | x, | ||
double | y | ||
) |
Find the nearest area.
Map | vector map |
x,y | point coordinates |
Definition at line 264 of file vector/Vlib/find.c.
References bound_box::B, boxlist::box, bound_box::E, G_debug(), G_malloc, G_realloc, boxlist::id, bound_box::N, boxlist::n_values, NULL, Map_info::plus, PORT_DOUBLE_MAX, bound_box::S, bound_box::T, Vect_new_boxlist(), Vect_select_areas_by_box(), bound_box::W, and x.
int Vect_find_island | ( | struct Map_info * | Map, |
double | x, | ||
double | y | ||
) |
Find the nearest island.
Map | vector map |
x,y | points coordinates |
Definition at line 366 of file vector/Vlib/find.c.
int Vect_find_line | ( | struct Map_info * | map, |
double | ux, | ||
double | uy, | ||
double | uz, | ||
int | type, | ||
double | maxdist, | ||
int | with_z, | ||
int | exclude | ||
) |
Find the nearest line.
map | vector map |
ux,uy,uz | points coordinates |
type | feature type (GV_LINE, GV_POINT, GV_BOUNDARY or GV_CENTROID) if only want to search certain types of lines or -1 if search all lines |
maxdist | max distance from the line |
with_z | 3D (WITH_Z, WITHOUT_Z) |
exclude | if > 0 number of line which should be excluded from selection. May be useful if we need line nearest to other one. |
Definition at line 129 of file vector/Vlib/find.c.
int Vect_find_line_list | ( | struct Map_info * | map, |
double | ux, | ||
double | uy, | ||
double | uz, | ||
int | type, | ||
double | maxdist, | ||
int | with_z, | ||
const struct ilist * | exclude, | ||
struct ilist * | found | ||
) |
Find the nearest line(s).
map | vector map |
ux,uy,uz | points coordinates |
type | feature type (GV_LINE, GV_POINT, GV_BOUNDARY or GV_CENTROID) if only want to search certain types of lines or -1 if search all lines |
maxdist | max distance from the line |
with_z | 3D (WITH_Z, WITHOUT_Z) |
exclude | list of lines which should be excluded from selection |
found | list of found lines (or NULL) |
Definition at line 164 of file vector/Vlib/find.c.
int Vect_find_node | ( | struct Map_info * | Map, |
double | ux, | ||
double | uy, | ||
double | uz, | ||
double | maxdist, | ||
int | with_z | ||
) |
Find the nearest node.
Map | vector map |
ux,uy,uz | point coordinates |
maxdist | max distance from the line |
with_z | 3D (WITH_Z, WITHOUT_Z) |
Definition at line 58 of file vector/Vlib/find.c.
References bound_box::B, bound_box::E, G_debug(), HUGE_VAL, bound_box::N, PORT_DOUBLE_MAX, bound_box::S, bound_box::T, ilist::value, Vect_get_node_coor(), Vect_new_list(), Vect_points_distance(), Vect_select_nodes_by_box(), bound_box::W, and x.
int Vect_find_poly_centroid | ( | const struct line_pnts * | points, |
double * | cent_x, | ||
double * | cent_y | ||
) |
Get centroid of polygon.
points | polygon | |
[out] | cent_x,cent_y | centroid coordinates |
Definition at line 363 of file Vlib/poly.c.
References line_pnts::n_points, line_pnts::x, and line_pnts::y.
Referenced by Vect_get_point_in_poly_isl().
double Vect_get_area_area | ( | const struct Map_info * | Map, |
int | area | ||
) |
Returns area of area without areas of isles.
Map | pointer to Map_info structure |
area | area id |
Definition at line 376 of file vector/Vlib/area.c.
Creates list of boundaries for given area.
Note that ids in List can be negative. The sign indicates in which direction the boundary should be read (negative for backward).
Map | pointer to Map_info structure | |
area | area id | |
[out] | List | pointer to list of boundaries |
Definition at line 139 of file vector/Vlib/area.c.
Get bounding box of area.
Vector map must be open at topological level and built with level >= GV_BUILD_AREAS.
Map | vector map | |
area | area id | |
[out] | Box | bounding box |
Definition at line 306 of file vector/Vlib/box.c.
References _, Plus_head::Area, bound_box::B, dig_find_area_box(), bound_box::E, G_warning(), bound_box::N, Plus_head::n_areas, NULL, Map_info::plus, PORT_DOUBLE_MAX, bound_box::S, bound_box::T, Vect_is_3d(), and bound_box::W.
Referenced by Vect__insert_face_pg(), and Vect_attach_isles().
int Vect_get_area_cat | ( | const struct Map_info * | Map, |
int | area, | ||
int | field | ||
) |
Find FIRST category of given field and area.
Map | pointer to Map_info structure |
area | area id |
field | layer number |
Definition at line 452 of file vector/Vlib/area.c.
References line_cats::cat, line_cats::field, line_cats::n_cats, NULL, Vect_get_area_cats(), Vect_new_cats_struct(), and Vect_reset_cats().
Referenced by vector2perimeters(), and Vedit_delete_areas_cat().
Get area categories.
Map | pointer to Map_info structure | |
area | area id | |
[out] | Cats | list of categories |
Definition at line 424 of file vector/Vlib/area.c.
References NULL, Vect_get_area_centroid(), Vect_read_line(), and Vect_reset_cats().
Referenced by Vect_get_area_cat().
int Vect_get_area_centroid | ( | const struct Map_info * | Map, |
int | area | ||
) |
Returns centroid id for given area.
Map | pointer to Map_info structure |
area | area id |
Definition at line 110 of file vector/Vlib/area.c.
References _, Plus_head::Area, P_area::centroid, G_debug(), G_fatal_error(), NULL, and Map_info::plus.
Referenced by Vect_get_area_cats().
int Vect_get_area_isle | ( | const struct Map_info * | Map, |
int | area, | ||
int | isle | ||
) |
Returns isle id for area.
Map | pointer to Map_info structure |
area | area id |
isle | isle index (0 .. nisles - 1) |
Definition at line 237 of file vector/Vlib/area.c.
References _, Plus_head::Area, G_debug(), G_fatal_error(), P_area::isles, NULL, and Map_info::plus.
int Vect_get_area_num_isles | ( | const struct Map_info * | Map, |
int | area | ||
) |
Returns number of isles for given area.
Map | pointer to Map_info structure |
area | area id |
Definition at line 208 of file vector/Vlib/area.c.
References _, Plus_head::Area, G_debug(), G_fatal_error(), P_area::n_isles, NULL, and Map_info::plus.
double Vect_get_area_perimeter | ( | const struct Map_info * | Map, |
int | area | ||
) |
Returns perimeter of area with perimeter of isles.
Map | pointer to Map_info structure |
area | area id |
Definition at line 291 of file vector/Vlib/area.c.
Returns polygon array of points (outer ring) of given area.
Map | pointer to Map_info structure | |
area | area id | |
[out] | BPoints | points array |
Definition at line 37 of file vector/Vlib/area.c.
References _, Plus_head::Area, G_debug(), G_warning(), P_area::lines, P_area::n_lines, NULL, Map_info::plus, Vect__get_area_points(), and Vect_reset_line().
Referenced by vector2perimeters().
GEOSCoordSequence* Vect_get_area_points_geos | ( | struct Map_info * | Map, |
int | area | ||
) |
Returns the polygon array of points, i.e. outer ring (shell)
You should free allocated memory by GEOSCoordSeq_destroy().
See also Vect_get_area_points().
Map | pointer to Map_info |
area | area id |
Definition at line 401 of file geos.c.
References _, Plus_head::Area, G_debug(), G_warning(), NULL, and Map_info::plus.
int Vect_get_built | ( | const struct Map_info * | Map | ) |
Return current highest built level (part)
Map | vector map |
Definition at line 746 of file build.c.
References Plus_head::built, and Map_info::plus.
int Vect_get_centroid_area | ( | const struct Map_info * | Map, |
int | centroid | ||
) |
Get area id the centroid is within.
Map | pointer to Map_info struct |
centroid | centroid id |
Definition at line 434 of file level_two.c.
Referenced by Vedit_delete_area_centroid().
const char* Vect_get_column_names | ( | const struct Map_info * | Map, |
int | field | ||
) |
Fetches list of DB column names of vector map attribute table.
Map | vector map |
field | layer number |
Definition at line 37 of file dbcolumns.c.
const char* Vect_get_column_names_types | ( | const struct Map_info * | Map, |
int | field | ||
) |
Fetches list of DB column names and types of vector map attribute table.
Map | vector map |
field | layer number |
Definition at line 152 of file dbcolumns.c.
const char* Vect_get_column_types | ( | const struct Map_info * | Map, |
int | field | ||
) |
Fetches list of DB column types of vector map attribute table.
Map | vector map |
field | layer number |
Definition at line 93 of file dbcolumns.c.
const char* Vect_get_comment | ( | const struct Map_info * | Map | ) |
Get comment or other info string from map header.
Map | pointer to Map_info structure |
Definition at line 453 of file vector/Vlib/header.c.
References dig_head::comment, and Map_info::head.
Referenced by Vect__write_head(), Vect_copy_head_data(), and Vect_write_ascii_head().
Get constraint box.
Constraint box can be defined by Vect_set_constraint_region().
Map | vector map | |
[out] | Box | bounding box |
Definition at line 79 of file constraint.c.
References bound_box::B, Map_info::box, Map_info::constraint, bound_box::E, bound_box::N, Map_info::region_flag, bound_box::S, bound_box::T, and bound_box::W.
Referenced by V1_read_next_line_nat().
const char* Vect_get_date | ( | const struct Map_info * | Map | ) |
Get date of digitization from map header.
Map | pointer to Map_info structure |
Definition at line 314 of file vector/Vlib/header.c.
References dig_head::date, and Map_info::head.
Referenced by Vect__write_head(), Vect_copy_head_data(), and Vect_write_ascii_head().
struct field_info* Vect_get_dblink | ( | const struct Map_info * | Map, |
int | link | ||
) |
Get information about link to database.
Variables are substituted by values, link is index to array of dblinks.
Map | pointer to Map_info structure |
link | link id |
Definition at line 466 of file field.c.
References _, field_info::database, Map_info::dblnk, field_info::driver, dblinks::field, G_debug(), G_malloc, G_store(), G_warning(), field_info::key, dblinks::n_fields, field_info::name, NULL, field_info::number, field_info::table, and Vect_subst_var().
Referenced by Vect_copy_map_dblinks(), Vect_get_field(), Vect_get_field2(), and Vect_get_field_by_name().
struct field_info* Vect_get_field | ( | const struct Map_info * | Map, |
int | field | ||
) |
Get information about link to database (by layer number)
Variables are substituted by values, field is number of requested field.
Map | pointer to Map_info structure |
field | layer number |
Definition at line 506 of file field.c.
References Map_info::dblnk, dblinks::field, G_debug(), dblinks::n_fields, NULL, field_info::number, and Vect_get_dblink().
Referenced by Vect_cats_set_constraint(), and Vect_get_field2().
struct field_info* Vect_get_field2 | ( | const struct Map_info * | Map, |
const char * | field | ||
) |
Get information about link to database (by layer number or layer name)
Note: if field is -1 then the function returns the first dblink or NULL
Map | pointer to Map_info structure |
field | layer number or name |
Definition at line 561 of file field.c.
References G_debug(), NULL, Vect_get_dblink(), Vect_get_field(), Vect_get_field_by_name(), and Vect_get_num_dblinks().
Referenced by Vect_get_field_number().
struct field_info* Vect_get_field_by_name | ( | const struct Map_info * | Map, |
const char * | field | ||
) |
Get information about link to database (by layer name)
Map | pointer to Map_info structure |
field | layer name |
Definition at line 532 of file field.c.
References Map_info::dblnk, dblinks::field, G_debug(), dblinks::n_fields, field_info::name, NULL, and Vect_get_dblink().
Referenced by Vect_get_field2().
int Vect_get_field_number | ( | const struct Map_info * | Map, |
const char * | field | ||
) |
Get field number of given field.
Map | pointer to Map_info structure |
field | layer name |
Definition at line 598 of file field.c.
References G_debug(), field_info::number, Vect_get_field2(), and Vect_get_num_dblinks().
Referenced by vector2perimeters().
const struct Format_info* Vect_get_finfo | ( | const struct Map_info * | Map | ) |
Get header info for non-native formats.
Map | pointer to Map_info structure |
Definition at line 225 of file header_finfo.c.
References Format_info_pg::conninfo, Format_info_ogr::driver_name, Map_info::fInfo, NULL, Format_info::ogr, and Format_info::pg.
const char* Vect_get_finfo_dsn_name | ( | const struct Map_info * | Map | ) |
Get datasource name (relevant only for non-native formats)
Returns:
Map | pointer to Map_info structure |
Definition at line 36 of file header_finfo.c.
References _, Format_info_pg::db_name, Format_info_ogr::dsn, Map_info::fInfo, Map_info::format, G_debug(), G_warning(), GV_FORMAT_OGR, GV_FORMAT_OGR_DIRECT, GV_FORMAT_POSTGIS, NULL, Format_info::ogr, Format_info::pg, and Vect_get_full_name().
const char* Vect_get_finfo_format_info | ( | const struct Map_info * | Map | ) |
Get format info as string (relevant only for non-native formats)
Map | pointer to Map_info structure |
Definition at line 108 of file header_finfo.c.
References _, Format_info_ogr::ds, Map_info::fInfo, Map_info::format, G_warning(), GV_FORMAT_OGR, GV_FORMAT_OGR_DIRECT, GV_FORMAT_POSTGIS, NULL, and Format_info::ogr.
Referenced by Vect_build_ogr(), and Vect_build_pg().
const char* Vect_get_finfo_geometry_type | ( | const struct Map_info * | Map | ) |
Get geometry type as string (relevant only for non-native formats)
Note: All inner spaces are removed, function returns feature type in lowercase.
Map | pointer to Map_info structure |
Definition at line 144 of file header_finfo.c.
References _, Format_info_pg::conn, DB_SQL_MAX, Map_info::fInfo, Map_info::format, G_debug(), G_free(), G_malloc, G_store(), G_str_replace(), G_str_to_lower(), G_warning(), GV_FORMAT_OGR, GV_FORMAT_OGR_DIRECT, GV_FORMAT_POSTGIS, Format_info_ogr::layer, NULL, Format_info::ogr, Format_info::pg, Format_info_pg::res, Format_info_pg::schema_name, and Format_info_pg::table_name.
Referenced by Vect_build_ogr(), Vect_build_pg(), and Vect_fidx_dump().
char* Vect_get_finfo_layer_name | ( | const struct Map_info * | Map | ) |
Get layer name (relevant only for non-native formats)
Returns:
Note: allocated string should be freed by G_free()
Map | pointer to Map_info structure |
Definition at line 72 of file header_finfo.c.
References _, Map_info::fInfo, Map_info::format, G_asprintf(), G_debug(), G_store(), G_warning(), GV_FORMAT_OGR, GV_FORMAT_OGR_DIRECT, GV_FORMAT_POSTGIS, Format_info_ogr::layer_name, name, NULL, Format_info::ogr, Format_info::pg, Format_info_pg::schema_name, Format_info_pg::table_name, and Vect_get_full_name().
int Vect_get_finfo_topology_info | ( | const struct Map_info * | Map, |
char ** | toposchema, | ||
char ** | topogeom, | ||
int * | topo_geo_only | ||
) |
Get topology type (relevant only for non-native formats)
Map | pointer to Map_info structure | |
[out] | toposchema | Topology schema name or NULL |
[out] | topogeom | TopoGeometry column name or NULL |
[out] | topo_geo_only | TRUE for Topo-Geo data model or NULL |
Definition at line 248 of file header_finfo.c.
References _, Map_info::fInfo, Map_info::format, G_store(), G_warning(), GV_FORMAT_OGR, GV_FORMAT_OGR_DIRECT, GV_FORMAT_POSTGIS, GV_TOPO_NATIVE, GV_TOPO_POSTGIS, GV_TOPO_PSEUDO, Format_info::pg, Format_info_pg::topo_geo_only, Format_info_pg::topogeom_column, and Format_info_pg::toposchema_name.
const char* Vect_get_full_name | ( | const struct Map_info * | Map | ) |
Get fully qualified name of vector map.
Allocated string should be freed by G_free().
Map | pointer to Map_info structure |
Definition at line 219 of file vector/Vlib/header.c.
References Format_info_ogr::dsn, Map_info::fInfo, Map_info::format, G_malloc, GV_FORMAT_OGR_DIRECT, Format_info_ogr::layer_name, Map_info::mapset, Map_info::name, and Format_info::ogr.
Referenced by V1_open_old_nat(), V2_open_old_ogr(), V2_open_old_pg(), Vect__read_head(), Vect__write_head(), Vect_build_partial(), Vect_build_sidx_from_topo(), Vect_cidx_open(), Vect_get_finfo_dsn_name(), Vect_get_finfo_layer_name(), Vect_open_fidx(), and Vect_sfa_get_num_features().
int Vect_get_isle_area | ( | const struct Map_info * | Map, |
int | isle | ||
) |
Returns area id for isle.
Map | vector |
isle | isle number (0 .. nisles - 1) |
Definition at line 264 of file vector/Vlib/area.c.
References _, P_isle::area, G_debug(), G_fatal_error(), Plus_head::Isle, NULL, and Map_info::plus.
Creates list of boundaries for given isle.
Note that ids in List can be negative. The sign indicates in which direction the boundary should be read (negative for forward).
Map | pointer to Map_info structur | |
isle | island number | |
[out] | List | pointer to list where boundaries are stored |
Definition at line 175 of file vector/Vlib/area.c.
Get bounding box of isle.
Vector map must be open at topological level and built with level >= GV_BUILD_AREAS.
Map | vector map | |
isle | isle id | |
[out] | Box | bounding box |
Definition at line 351 of file vector/Vlib/box.c.
References _, bound_box::B, dig_find_isle_box(), bound_box::E, G_warning(), Plus_head::Isle, bound_box::N, Plus_head::n_isles, NULL, Map_info::plus, PORT_DOUBLE_MAX, bound_box::S, bound_box::T, Vect_is_3d(), and bound_box::W.
Referenced by Vect__insert_face_pg().
Returns polygon array of points for given isle.
Map | pointer to Map_info structure | |
isle | island id | |
[out] | BPoints | points array |
Definition at line 68 of file vector/Vlib/area.c.
References _, Format_info_pg::cache, Format_info_cache::ctype, Map_info::fInfo, Map_info::format, G_debug(), G_fatal_error(), G_warning(), GV_FORMAT_POSTGIS, Plus_head::Isle, P_isle::lines, P_isle::n_lines, NULL, Format_info::pg, Map_info::plus, Format_info_pg::toposchema_name, Vect__get_area_points_nat(), Vect__get_area_points_pg(), and Vect_reset_line().
GEOSCoordSequence* Vect_get_isle_points_geos | ( | struct Map_info * | Map, |
int | isle | ||
) |
Returns the polygon (isle) array of points (inner ring)
You should free allocated memory by GEOSCoordSeq_destroy().
See also Vect_get_isle_points().
Map | pointer to Map_info |
isle | isel id |
Definition at line 432 of file geos.c.
References G_debug(), Plus_head::Isle, and Map_info::plus.
int Vect_get_line_areas | ( | const struct Map_info * | Map, |
int | line, | ||
int * | left, | ||
int * | right | ||
) |
Get area id on the left and right side of the boundary.
Negative area id indicates an isle.
Map | pointer to Map_info struct | |
line | line id | |
[out] | left,right | area id on the left and right side |
Definition at line 350 of file level_two.c.
Get bounding box of given feature.
Vector map must be open at topological level and built with level >= GV_BUILD_BASE.
Map | vector map | |
line | feature id | |
[out] | Box | bounding box |
Definition at line 240 of file vector/Vlib/box.c.
int Vect_get_line_cat | ( | const struct Map_info * | Map, |
int | line, | ||
int | field | ||
) |
int Vect_get_line_nodes | ( | const struct Map_info * | Map, |
int | line, | ||
int * | n1, | ||
int * | n2 | ||
) |
Get line nodes.
Map | pointer to Map_info struct |
line | line id |
n1 | (start node), n2 (end node) ids of line nodes (or NULL) |
Definition at line 307 of file level_two.c.
off_t Vect_get_line_offset | ( | const struct Map_info * | Map, |
int | line | ||
) |
Get feature offset (topological level required)
Note: Topology must be built at level >= GV_BUILD_BASE
Used for Vect_restore_line().
Map | pointer to Map_info structure |
line | feature id |
Definition at line 295 of file vector/Vlib/read.c.
int Vect_get_line_type | ( | const struct Map_info * | Map, |
int | line | ||
) |
Get line type.
Map | pointer to Map_info struct |
line | line id |
Definition at line 258 of file level_two.c.
Get bounding box of map (all features in the map)
Requires level 2. On level 1 error code is returned.
Map | vector map | |
[out] | Box | bounding box |
Definition at line 394 of file vector/Vlib/box.c.
References Plus_head::box, Map_info::plus, Vect_box_copy(), and Vect_level().
Get bounding box of map on level 1 (all features in the map)
This subroutine determines bounding box by reading all features sequentially.
Map | vector map | |
[out] | Box | bounding box |
Definition at line 419 of file vector/Vlib/box.c.
const char* Vect_get_map_date | ( | const struct Map_info * | Map | ) |
Get date when the source map was originally produced from map header.
Map | pointer to Map_info structure |
Definition at line 398 of file vector/Vlib/header.c.
References Map_info::head, and dig_head::source_date.
Referenced by Vect__write_head(), Vect_copy_head_data(), Vect_print_header(), and Vect_write_ascii_head().
const char* Vect_get_map_name | ( | const struct Map_info * | Map | ) |
Get map name from map header.
Map | pointer to Map_info structure |
Definition at line 370 of file vector/Vlib/header.c.
References Map_info::head, and dig_head::map_name.
Referenced by Vect__write_head(), Vect_copy_head_data(), Vect_print_header(), and Vect_write_ascii_head().
const char* Vect_get_mapset | ( | const struct Map_info * | Map | ) |
Get name of mapset where vector map lives.
Map | pointer to Map_info structure |
Definition at line 202 of file vector/Vlib/header.c.
References Map_info::mapset.
const char* Vect_get_name | ( | const struct Map_info * | Map | ) |
Get name of vector map.
Map | pointer to Map_info structure |
Definition at line 190 of file vector/Vlib/header.c.
References Map_info::name.
Referenced by Vect_close(), Vect_save_sidx(), and Vect_write_dblinks().
int Vect_get_next_line_id | ( | const struct Map_info * | Map | ) |
Get line id for sequential reading.
This function returns id of feature which has been read by calling Vect_read_next_line().
Map | pointer to Map_info struct |
Definition at line 88 of file vector/Vlib/read.c.
References _, G_debug(), G_warning(), Map_info::next_line, and VECT_OPEN.
int Vect_get_node_coor | ( | const struct Map_info * | Map, |
int | num, | ||
double * | x, | ||
double * | y, | ||
double * | z | ||
) |
Get node coordinates.
Map | pointer to Map_info struct | |
num | node id (starts at 1) | |
[out] | x,y,z | coordinates values (for 2D coordinates z is NULL) |
Definition at line 278 of file level_two.c.
References _, G_warning(), Plus_head::n_nodes, Plus_head::Node, NULL, Map_info::plus, P_node::x, P_node::y, and P_node::z.
Referenced by Vect_find_node().
int Vect_get_node_line | ( | const struct Map_info * | Map, |
int | node, | ||
int | line | ||
) |
Get line id for node line index.
Map | pointer to Map_info struct |
node | node id |
line | line index (range: 0 - Vect_get_node_n_lines()) |
Definition at line 401 of file level_two.c.
float Vect_get_node_line_angle | ( | const struct Map_info * | Map, |
int | node, | ||
int | line | ||
) |
Angle of segment of the line connected to the node.
Map | pointer to Map_info struct |
node | node number |
line | line index (range: 0 - Vect_get_node_n_lines()) |
Definition at line 417 of file level_two.c.
int Vect_get_node_n_lines | ( | const struct Map_info * | Map, |
int | node | ||
) |
Get number of lines for node.
Map | pointer to Map_info struct |
node | node id |
Definition at line 384 of file level_two.c.
Get number of areas in vector map.
Map | pointer to Map_info struct |
Definition at line 86 of file level_two.c.
References Plus_head::n_areas, and Map_info::plus.
Referenced by vector2perimeters(), and Vedit_delete_areas_cat().
int Vect_get_num_dblinks | ( | const struct Map_info * | Map | ) |
Get number of defined dblinks.
Map | pointer to Map_info struct |
Definition at line 163 of file level_two.c.
References Map_info::dblnk, and dblinks::n_fields.
Referenced by Vect_copy_map_dblinks(), Vect_get_field2(), and Vect_get_field_number().
Get number of faces in vector map.
Map | pointer to Map_info struct |
Definition at line 111 of file level_two.c.
References Plus_head::n_flines, and Map_info::plus.
Fetch number of holes in vector map.
Map | pointer to Map_info struct |
Definition at line 150 of file level_two.c.
References Plus_head::n_holes, and Map_info::plus.
Get number of islands in vector map.
Map | pointer to Map_info struct |
Definition at line 137 of file level_two.c.
References Plus_head::n_isles, and Map_info::plus.
Fetch number of kernels in vector map.
Map | pointer to Map_info struct |
Definition at line 98 of file level_two.c.
References Plus_head::n_klines, and Map_info::plus.
int Vect_get_num_line_points | ( | const struct line_pnts * | Points | ) |
Fetch number of features (points, lines, boundaries, centroids) in vector map.
Map | pointer to Map_info struct |
Definition at line 74 of file level_two.c.
References Plus_head::n_lines, and Map_info::plus.
Referenced by NetA_initialise_varray(), and Vect_fidx_dump().
Get number of nodes in vector map.
Map | pointer to Map_info struct |
Definition at line 34 of file level_two.c.
References Plus_head::n_nodes, and Map_info::plus.
Get number of primitives in vector map.
Map | pointer to Map_info struct |
type | feature type |
Definition at line 47 of file level_two.c.
int Vect_get_num_updated_lines | ( | const struct Map_info * | Map | ) |
Get number of updated features.
Note: Vect_set_updated() must be called to maintain list of updated features
Map | pointer to Map_info struct |
Definition at line 179 of file level_two.c.
References Plus_head::n_uplines, Map_info::plus, and Plus_head::uplist.
int Vect_get_num_updated_nodes | ( | const struct Map_info * | Map | ) |
Get number of updated nodes.
Map | pointer to Map_info struct |
Definition at line 223 of file level_two.c.
References Plus_head::n_upnodes, Map_info::plus, and Plus_head::uplist.
Fetch number of volumes in vector map.
Map | pointer to Map_info struct |
Definition at line 124 of file level_two.c.
References Plus_head::n_volumes, and Map_info::plus.
const char* Vect_get_organization | ( | const struct Map_info * | Map | ) |
Get organization string from map header.
Map | pointer to Map_info structure |
Definition at line 283 of file vector/Vlib/header.c.
References Map_info::head, and dig_head::organization.
Referenced by Vect__write_head(), Vect_copy_head_data(), Vect_print_header(), and Vect_write_ascii_head().
const char* Vect_get_person | ( | const struct Map_info * | Map | ) |
Get user name string who digitized the map from map header.
Map | pointer to Map_info structure |
Definition at line 342 of file vector/Vlib/header.c.
References Map_info::head, and dig_head::user_name.
Referenced by Vect__write_head(), Vect_copy_head_data(), and Vect_write_ascii_head().
int Vect_get_point_in_area | ( | const struct Map_info * | Map, |
int | area, | ||
double * | X, | ||
double * | Y | ||
) |
Get point inside area and outside all islands.
Take a line and intersect it with the polygon and any islands. sort the list of X values from these intersections. This will be a list of segments alternating IN/OUT/IN/OUT of the polygon. Pick the largest IN segment and take the midpoint.
Map | vector map | |
area | area id | |
[out] | X,Y | point coordinateds |
Definition at line 56 of file Vlib/poly.c.
int Vect_get_point_in_poly | ( | const struct line_pnts * | Points, |
double * | X, | ||
double * | Y | ||
) |
Get point inside polygon.
This does NOT consider ISLANDS!
Points | polygon | |
[out] | X,Y | point coordinates |
Definition at line 211 of file Vlib/poly.c.
int Vect_get_point_in_poly_isl | ( | const struct line_pnts * | Points, |
const struct line_pnts ** | IPoints, | ||
int | n_isles, | ||
double * | att_x, | ||
double * | att_y | ||
) |
Get point inside polygon but outside the islands specifiled in IPoints.
Take a line and intersect it with the polygon and any islands. sort the list of X values from these intersections. This will be a list of segments alternating IN/OUT/IN/OUT of the polygon. Pick the largest IN segment and take the midpoint.
Points | polygon (boundary) | |
IPoints | isles (list of isle boundaries) | |
n_isles | number of isles | |
[out] | att_x,att_y | point coordinates |
Definition at line 457 of file Vlib/poly.c.
References G_debug(), max, line_pnts::n_points, Vect__intersect_y_line_with_poly(), Vect_find_poly_centroid(), Vect_new_line_struct(), Vect_point_in_poly(), x, line_pnts::x, and line_pnts::y.
int Vect_get_proj | ( | const struct Map_info * | Map | ) |
Get projection from map header.
Map | pointer to Map_info structure |
Definition at line 518 of file vector/Vlib/header.c.
References Map_info::head, and dig_head::proj.
Referenced by Vect__write_head(), and Vect_get_proj_name().
const char* Vect_get_proj_name | ( | const struct Map_info * | Map | ) |
Query cartographic projection name of pointer to Map_info structure.
Returns a pointer to a string which is a printable name for projection code proj (as returned by Vect_get_proj()).
Map | pointer to Map_info structure |
Definition at line 535 of file vector/Vlib/header.c.
References _, G_database_projection_name(), G_debug(), G_projection_name(), G_store(), name, PROJECTION_LL, PROJECTION_OTHER, PROJECTION_UTM, PROJECTION_XY, and Vect_get_proj().
int Vect_get_scale | ( | const struct Map_info * | Map | ) |
Get map scale from map header.
Map | pointer to Map_info structure |
Definition at line 425 of file vector/Vlib/header.c.
References Map_info::head, and dig_head::orig_scale.
Referenced by Vect__write_head(), Vect_copy_head_data(), Vect_print_header(), and Vect_write_ascii_head().
double Vect_get_thresh | ( | const struct Map_info * | Map | ) |
Get threshold used for digitization from map header.
Map | pointer to Map_info structure |
Definition at line 582 of file vector/Vlib/header.c.
References dig_head::digit_thresh, and Map_info::head.
Referenced by Vect__write_head(), Vect_copy_head_data(), and Vect_write_ascii_head().
int Vect_get_updated_line | ( | const struct Map_info * | Map, |
int | idx | ||
) |
Get updated line by index.
Note: Vect_set_updated() must be called to maintain list of updated features
Map | pointer to Map_info struct |
idx | index |
Definition at line 195 of file level_two.c.
References Map_info::plus, Plus_head::uplines, and Plus_head::uplist.
off_t Vect_get_updated_line_offset | ( | const struct Map_info * | Map, |
int | idx | ||
) |
Get updated line offset by index.
Note: Vect_set_updated() must be called to maintain list of updated features
Map | pointer to Map_info struct |
idx | index |
Definition at line 211 of file level_two.c.
References Map_info::plus, Plus_head::uplines_offset, and Plus_head::uplist.
int Vect_get_updated_node | ( | const struct Map_info * | Map, |
int | idx | ||
) |
Get updated (modified) node by index.
Note: Vect_set_updated() must be called to maintain list of updated features
Negative id:
Map | pointer to Map_info struct |
idx | index |
Definition at line 245 of file level_two.c.
References Map_info::plus, Plus_head::uplist, and Plus_head::upnodes.
int Vect_get_zone | ( | const struct Map_info * | Map | ) |
Get projection zone from map header.
Map | pointer to Map_info structure |
Definition at line 480 of file vector/Vlib/header.c.
References G_zone().
Referenced by Vect__write_head(), Vect_copy_head_data(), and Vect_write_ascii_head().
void Vect_graph_add_edge | ( | dglGraph_s * | graph, |
int | from, | ||
int | to, | ||
double | costs, | ||
int | id | ||
) |
Add edge to graph.
Internal format for edge costs is integer, costs are multiplied before conversion to int by 1000. Costs -1 for infinity i.e. arc or node is closed and cannot be traversed.
graph | pointer to graph structure |
from | from node |
to | to node |
costs | costs value |
id | edge id |
Definition at line 124 of file vector/Vlib/graph.c.
References _, dglAddEdge(), G_debug(), and G_fatal_error().
void Vect_graph_build | ( | dglGraph_s * | graph | ) |
Build network graph.
Internal format for edge costs is integer, costs are multiplied before conversion to int by 1000. Costs -1 for infinity i.e. arc or node is closed and cannot be traversed.
graph | pointer to graph structure |
Definition at line 97 of file vector/Vlib/graph.c.
References _, dglFlatten(), G_debug(), and G_fatal_error().
void Vect_graph_init | ( | dglGraph_s * | graph, |
int | nodes_costs | ||
) |
Initialize graph structure.
graph | pointer to graph structure |
nodes_costs | use node costs |
Definition at line 71 of file vector/Vlib/graph.c.
References dglInitialize(), and G_debug().
void Vect_graph_set_node_costs | ( | dglGraph_s * | graph, |
int | node, | ||
double | costs | ||
) |
Set node costs.
Internal format for edge costs is integer, costs are multiplied before conversion to int by 1000. Costs -1 for infinity i.e. arc or node is closed and cannot be traversed.
graph | pointer to graph structure |
node | node id |
costs | costs value |
Definition at line 154 of file vector/Vlib/graph.c.
References dglGetNode(), dglNodeSet_Attr(), and G_debug().
int Vect_graph_shortest_path | ( | dglGraph_s * | graph, |
int | from, | ||
int | to, | ||
struct ilist * | List, | ||
double * | cost | ||
) |
Find shortest path.
Costs for 'from' and 'to' nodes are not considered (SP found even if 'from' or 'to' are 'closed' (costs = -1) and costs of these nodes are not added to SP costs result.
graph | pointer to graph structure |
from | from node |
to | to node |
List | list of line ids |
cost | costs value |
Definition at line 184 of file vector/Vlib/graph.c.
int Vect_hist_command | ( | struct Map_info * | Map | ) |
Write command info to history file.
Map | pointer to Map_info structure |
Definition at line 29 of file hist.c.
References G_date(), G_debug(), G_gisdbase(), G_location(), G_mapset(), G_recreate_command(), G_whoami(), GPATH_MAX, and Vect_hist_write().
Copy history from one map to another.
In | input vector map | |
[out] | Out | output vector map |
Definition at line 131 of file hist.c.
References G_debug(), G_fseek(), G_ftell(), Map_info::hist_fp, NULL, and Vect_hist_write().
Referenced by Vect_close().
char* Vect_hist_read | ( | char * | s, |
int | size, | ||
const struct Map_info * | Map | ||
) |
void Vect_hist_rewind | ( | struct Map_info * | Map | ) |
Rewind history file.
Map | vector map |
Definition at line 114 of file hist.c.
References G_debug(), Map_info::hist_fp, and NULL.
int Vect_hist_write | ( | struct Map_info * | Map, |
const char * | str | ||
) |
Write string to history file.
Map | pointer to Map_info structure |
str | string to write |
Definition at line 65 of file hist.c.
References G_debug(), and Map_info::hist_fp.
Referenced by Vect_hist_command(), and Vect_hist_copy().
int Vect_is_3d | ( | const struct Map_info * | Map | ) |
Check if vector map is 3D.
Check vector map header.
Map | pointer to Map_info structure |
Definition at line 255 of file vector/Vlib/header.c.
References Map_info::head, and dig_head::with_z.
Referenced by Vect_close(), Vect_get_area_box(), and Vect_get_isle_box().
int Vect_isle_alive | ( | const struct Map_info * | Map, |
int | isle | ||
) |
Check if isle is alive or dead (topological level required)
Note: Topology must be built at level >= GV_BUILD_AREAS
Map | pointer to Map_info structure |
isle | isle id |
Definition at line 269 of file vector/Vlib/read.c.
References _, G_warning(), Plus_head::Isle, Plus_head::n_isles, NULL, and Map_info::plus.
Find area outside island.
Map | vector map |
isle | isle id |
box | isle bbox |
Definition at line 177 of file build.c.
Referenced by Vect_attach_isle().
int Vect_legal_filename | ( | const char * | s | ) |
Check if output is legal vector name.
Rule: [A-Za-z][A-Za-z0-9_]*
Check also for SQL keywords.
s | filename to be checked |
Definition at line 31 of file legal_vname.c.
Referenced by Vect_copy().
int Vect_level | ( | const struct Map_info * | Map | ) |
Returns level that Map is opened at.
Map | vector map |
Definition at line 29 of file level.c.
References _, G_warning(), Map_info::level, Map_info::open, VECT_CLOSED_CODE, and VECT_OPEN_CODE.
Referenced by Vect_get_map_box().
int Vect_line_alive | ( | const struct Map_info * | Map, |
int | line | ||
) |
Check if feature is alive or dead (topological level required)
Note: Topology must be built at level >= GV_BUILD_BASE
Map | pointer to Map_info structure |
line | feature id |
Definition at line 197 of file vector/Vlib/read.c.
void Vect_line_buffer | ( | const struct line_pnts * | InPoints, |
double | distance, | ||
double | tolerance, | ||
struct line_pnts * | OutPoints | ||
) |
Create buffer around the line line.
This function is replaced by Vect_line_buffer().
Buffer is closed counter clockwise polygon. Warning: output line may contain loops!
InPoints | input line | |
distance | create buffer in distance | |
tolerance | maximum distance between theoretical arc and polygon segments | |
[out] | OutPoints | output line |
void Vect_line_buffer2 | ( | const struct line_pnts * | Points, |
double | da, | ||
double | db, | ||
double | dalpha, | ||
int | round, | ||
int | caps, | ||
double | tol, | ||
struct line_pnts ** | oPoints, | ||
struct line_pnts *** | iPoints, | ||
int * | inner_count | ||
) |
Creates buffer around line.
See also Vect_line_buffer().
Shape of buffer endings is managed by two parameters - round and cap. Setting round=1, cap=1 gives "classical" buffer, while round=0, cap=1 gives square end, but cap=0 – butt. See v.buffer manual or SVG stroke-linecap for examples.
To get "classical" buffer, set db equal to da, and dalpha to 0.
Points | input line geometry | |
da | distance along major axis | |
db | distance along minor axis | |
dalpha | angle between 0x and major axis | |
round | make corners round (0 - square, not 0 - round) | |
caps | add caps at line ends (0 - butt, not 0 - caps) | |
tol | maximum distance between theoretical arc and output segments | |
[out] | oPoints | output polygon outer border (ccw order) |
[out] | iPoints | array of output polygon's holes (cw order) |
[out] | inner_count | number of holes |
int Vect_line_check_duplicate | ( | const struct line_pnts * | APoints, |
const struct line_pnts * | BPoints, | ||
int | with_z | ||
) |
Check for duplicate lines.
Note that lines must be pruned with Vect_line_prune() before passed to Vect_line_check_duplicate(), as done by Vect_remove_duplicates()
APoints | first line geometry |
BPoints | second line geometry |
Definition at line 214 of file remove_duplicates.c.
References line_pnts::n_points, line_pnts::x, line_pnts::y, and line_pnts::z.
int Vect_line_check_intersection | ( | struct line_pnts * | APoints, |
struct line_pnts * | BPoints, | ||
int | with_z | ||
) |
Check if 2 lines intersect.
Points (Points->n_points == 1) are also supported.
APoints | first input line |
BPoints | second input line |
with_z | 3D, not supported (only if one or both are points)! |
Definition at line 1275 of file vector/Vlib/intersect.c.
Referenced by Vect_line_get_intersections().
int Vect_line_check_intersection2 | ( | struct line_pnts * | APoints, |
struct line_pnts * | BPoints, | ||
int | with_z | ||
) |
Check if 2 lines intersect.
Points (Points->n_points == 1) are also supported.
APoints | first input line |
BPoints | second input line |
with_z | 3D, not supported (only if one or both are points)! |
Definition at line 1289 of file intersect2.c.
Referenced by Vect_line_get_intersections2().
int Vect_line_delete_point | ( | struct line_pnts * | Points, |
int | index | ||
) |
int Vect_line_distance | ( | const struct line_pnts * | points, |
double | ux, | ||
double | uy, | ||
double | uz, | ||
int | with_z, | ||
double * | px, | ||
double * | py, | ||
double * | pz, | ||
double * | dist, | ||
double * | spdist, | ||
double * | lpdist | ||
) |
Calculate distance of point to line.
Sets (if not null):
points | pointer to line_pnts structure | |
ux,uy,uz | point coordinates | |
with_z | flag if to use z coordinate (3D calculation) | |
[out] | px,py,pz | point on line |
[out] | dist | distance to line |
[out] | spdist | distance to point on line from segment beginning |
[out] | lpdist | distance to point on line from line beginning along line |
Definition at line 651 of file line.c.
References dig_distance2_point_to_line(), line_pnts::n_points, NULL, line_pnts::x, line_pnts::y, and line_pnts::z.
int Vect_line_geodesic_distance | ( | const struct line_pnts * | points, |
double | ux, | ||
double | uy, | ||
double | uz, | ||
int | with_z, | ||
double * | px, | ||
double * | py, | ||
double * | pz, | ||
double * | dist, | ||
double * | spdist, | ||
double * | lpdist | ||
) |
Calculate geodesic distance of point to line in meters.
Sets (if not null):
points | pointer to line_pnts structure | |
ux,uy,uz | point coordinates | |
with_z | flag if to use z coordinate (3D calculation) | |
[out] | px,py,pz | point on line |
[out] | dist | distance to line |
[out] | spdist | distance to point on line from segment beginning |
[out] | lpdist | distance to point on line from line beginning along line |
Definition at line 772 of file line.c.
References dig_distance2_point_to_line(), G_begin_distance_calculations(), G_distance(), line_pnts::n_points, NULL, line_pnts::x, line_pnts::y, and line_pnts::z.
double Vect_line_geodesic_length | ( | const struct line_pnts * | Points | ) |
int Vect_line_get_intersections | ( | struct line_pnts * | APoints, |
struct line_pnts * | BPoints, | ||
struct line_pnts * | IPoints, | ||
int | with_z | ||
) |
Get 2 lines intersection points.
A wrapper around Vect_line_check_intersection() function.
APoints | first input line | |
BPoints | second input line | |
[out] | IPoints | output with intersection points |
with_z | 3D, not supported (only if one or both are points)! |
Definition at line 1458 of file vector/Vlib/intersect.c.
References Vect_line_check_intersection().
int Vect_line_get_intersections2 | ( | struct line_pnts * | APoints, |
struct line_pnts * | BPoints, | ||
struct line_pnts * | IPoints, | ||
int | with_z | ||
) |
Get 2 lines intersection points.
A wrapper around Vect_line_check_intersection() function.
APoints | first input line | |
BPoints | second input line | |
[out] | IPoints | output with intersection points |
with_z | 3D, not supported (only if one or both are points)! |
Definition at line 1568 of file intersect2.c.
References Vect_line_check_intersection2().
int Vect_line_get_point | ( | const struct line_pnts * | Points, |
int | index, | ||
double * | x, | ||
double * | y, | ||
double * | z | ||
) |
Get line point of given index.
Calls G_fatal_error() when index is not range in.
Points | pointer to line_pnts structure |
index | point index (from 0 to Points->n_points-1) |
x | pointer to x coordinate or NULL |
y | pointer to y coordinate or NULL |
z | pointer to z coordinate or NULL |
int Vect_line_insert_point | ( | struct line_pnts * | Points, |
int | index, | ||
double | x, | ||
double | y, | ||
double | z | ||
) |
int Vect_line_intersection | ( | struct line_pnts * | APoints, |
struct line_pnts * | BPoints, | ||
struct bound_box * | ABox, | ||
struct bound_box * | BBox, | ||
struct line_pnts *** | ALines, | ||
struct line_pnts *** | BLines, | ||
int * | nalines, | ||
int * | nblines, | ||
int | with_z | ||
) |
Intersect 2 lines.
Creates array of new lines created from original A line, by intersection with B line. Points (Points->n_points == 1) are not supported.
APoints | first input line | |
BPoints | second input line | |
[out] | ALines | array of new lines created from original A line |
[out] | BLines | array of new lines created from original B line |
[out] | nalines | number of new lines (ALines) |
[out] | nblines | number of new lines (BLines) |
with_z | 3D, not supported! |
Definition at line 650 of file vector/Vlib/intersect.c.
References l, x, and line_pnts::y.
int Vect_line_intersection2 | ( | struct line_pnts * | APoints, |
struct line_pnts * | BPoints, | ||
struct bound_box * | pABox, | ||
struct bound_box * | pBBox, | ||
struct line_pnts *** | ALines, | ||
struct line_pnts *** | BLines, | ||
int * | nalines, | ||
int * | nblines, | ||
int | with_z | ||
) |
Intersect 2 lines.
Creates array of new lines created from original A line, by intersection with B line. Points (Points->n_points == 1) are not supported. If B line is NULL, A line is intersected with itself.
simplified Bentley–Ottmann Algorithm
APoints | first input line | |
BPoints | second input line or NULL | |
[out] | ALines | array of new lines created from original A line |
[out] | BLines | array of new lines created from original B line |
[out] | nalines | number of new lines (ALines) |
[out] | nblines | number of new lines (BLines) |
with_z | 3D, not supported! |
Definition at line 683 of file intersect2.c.
References l.
double Vect_line_length | ( | const struct line_pnts * | Points | ) |
Calculate line length, 3D-length in case of 3D vector line.
For Lat-Long use Vect_line_geodesic_length() instead.
Points | pointer to line_pnts structure geometry |
void Vect_line_parallel | ( | struct line_pnts * | InPoints, |
double | distance, | ||
double | tolerance, | ||
int | rm_end, | ||
struct line_pnts * | OutPoints | ||
) |
Create parallel line.
This function is replaced by Vect_line_parallel2().
InPoints | input line | |
distance | create parallel line in distance | |
tolerance | maximum distance between theoretical arc and polygon segments | |
rm_end | remove end points falling into distance | |
[out] | OutPoints | output line |
void Vect_line_parallel2 | ( | struct line_pnts * | , |
double | , | ||
double | , | ||
double | , | ||
int | , | ||
int | , | ||
double | , | ||
struct line_pnts * | |||
) |
Definition at line 1188 of file buffer2.c.
References G_debug(), and line_pnts::n_points.
int Vect_line_prune | ( | struct line_pnts * | Points | ) |
Remove duplicate points, i.e. zero length segments.
Points | pointer to line_pnts structure |
Definition at line 281 of file line.c.
Referenced by Vect_build_line_area().
int Vect_line_prune_thresh | ( | struct line_pnts * | Points, |
double | threshold | ||
) |
void Vect_line_reverse | ( | struct line_pnts * | Points | ) |
int Vect_line_segment | ( | const struct line_pnts * | InPoints, |
double | start, | ||
double | end, | ||
struct line_pnts * | OutPoints | ||
) |
Create line segment.
Creates segment of InPoints from start to end measured along the line and write it to OutPoints.
If the distance is greater than line length or negative, error is returned.
InPoints | input line |
start | segment number |
end | segment number |
OutPoints | output line |
GEOSGeometry* Vect_line_to_geos | ( | const struct line_pnts * | points, |
int | type, | ||
int | with_z | ||
) |
Create GEOSGeometry of given type from feature points.
Supported types:
You should free allocated memory by GEOSGeom_destroy().
points | pointer to line_pnts structure |
type | feature type (see supported types) |
with_z | Set to 1 if the feature is 3d, 0 otherwise |
unsigned char* Vect_line_to_wkb | ( | const struct line_pnts * | points, |
int | type, | ||
int | with_z, | ||
size_t * | size | ||
) |
Create a Well Known Binary (WKB) representation of given feature type from points.
This function is not thread safe, it uses static variables for speedup.
Supported feature types:
points | pointer to line_pnts structure |
type | feature type (see supported types) |
with_z | Set to 1 if the feature is 3d, 0 otherwise |
size | The size of the returned byte array |
Definition at line 201 of file geos_to_wktb.c.
char* Vect_line_to_wkt | ( | const struct line_pnts * | points, |
int | type, | ||
int | with_z | ||
) |
Create a Well Known Text (WKT) representation of given feature type from points.
This function is not thread safe, it uses static variables for speedup.
Supported types:
points | pointer to line_pnts structure |
type | feature type (see supported types) |
with_z | Set to 1 if the feature is 3d, 0 otherwise |
Definition at line 249 of file geos_to_wktb.c.
int Vect_list_append | ( | struct ilist * | list, |
int | val | ||
) |
Append new item to the end of list if not yet present.
[in,out] | list | pointer to ilist structure |
val | new item to append to the end of list |
Definition at line 90 of file vector/Vlib/list.c.
References ilist::alloc_values, G_realloc, ilist::n_values, NULL, and ilist::value.
Referenced by Vect_field_cat_get(), and Vect_list_append_list().
Append new items to the end of list if not yet present.
[in,out] | alist | pointer to ilist structure where items will be appended |
blist | pointer to ilist structure with new items |
Definition at line 124 of file vector/Vlib/list.c.
References ilist::n_values, NULL, ilist::value, and Vect_list_append().
int Vect_list_delete | ( | struct ilist * | list, |
int | val | ||
) |
Remove a given value (item) from list.
[in,out] | list | pointer to ilist structure |
val | to remove |
Definition at line 146 of file vector/Vlib/list.c.
References ilist::n_values, NULL, and ilist::value.
Referenced by Vect_list_delete_list().
Delete list from existing list.
[in,out] | alist | pointer to original ilist structure, |
blist | pointer to ilist structure with items to delete |
Definition at line 175 of file vector/Vlib/list.c.
References ilist::n_values, NULL, ilist::value, and Vect_list_delete().
int Vect_map_add_dblink | ( | struct Map_info * | Map, |
int | number, | ||
const char * | name, | ||
const char * | table, | ||
const char * | key, | ||
const char * | db, | ||
const char * | driver | ||
) |
Add new db connection to Map_info structure.
Map | pointer to Map_info structure |
number | layer number |
name | layer name (if not given use table name) |
table | table name |
key | key name |
db | database name |
driver | driver name |
Definition at line 113 of file field.c.
Referenced by Vect_copy_map_dblinks().
int Vect_map_check_dblink | ( | const struct Map_info * | Map, |
int | field, | ||
const char * | name | ||
) |
Check if DB connection exists in dblinks structure.
Map | pointer to Map_info structure |
field | layer number |
name | layer name |
Definition at line 229 of file field.c.
References Map_info::dblnk, and Vect_check_dblink().
int Vect_map_del_dblink | ( | struct Map_info * | Map, |
int | field | ||
) |
Delete db connection from Map_info structure.
Map | pointer to Map_info structure |
field | layer number (-1 to delete all dblinks) |
Definition at line 153 of file field.c.
References _, field_info::database, Map_info::dblnk, field_info::driver, dblinks::field, G_debug(), G_warning(), field_info::key, dblinks::n_fields, field_info::name, field_info::number, field_info::table, and Vect_write_dblinks().
Referenced by Vect_close().
int Vect_maptype | ( | const struct Map_info * | Map | ) |
Gets vector map format.
Currently are implemented:
Map | pointer to Map_info structure |
Definition at line 1069 of file vector/Vlib/open.c.
References Format_info_pg::conninfo, Format_info_ogr::driver_name, Map_info::fInfo, Map_info::format, GV_FORMAT_OGR, GV_FORMAT_POSTGIS, Format_info::ogr, Format_info::pg, and Map_info::temporary.
Referenced by Vect_fidx_dump().
const char* Vect_maptype_info | ( | const struct Map_info * | Map | ) |
Gets vector map format (as string)
Note: string is allocated by G_store(). Free allocated memory with G_free().
Currently are implemented:
Map | pointer to Map_info structure |
Definition at line 1033 of file vector/Vlib/open.c.
References _, Map_info::format, G_store(), GV_FORMAT_NATIVE, GV_FORMAT_OGR, GV_FORMAT_OGR_DIRECT, and GV_FORMAT_POSTGIS.
Referenced by Vect_fidx_dump().
Merge lines or boundaries in vector map.
Merges lines specified by type in vector map. Useful for generalization and smoothing. Adjacent boundaries are merged as long as topology is maintained. Adjacent lines are merged as long as there are exactly two different lines with identical categories connected at a given node. Zero-length lines need to be removed first. GV_BUILD_BASE as topo build level is sufficient, areas need not be built.
Map | input vector map | |
type | feature type | |
[out] | Err | vector map where merged lines/boundaries will be written or NULL |
new_lines | pointer to where number of new lines/boundaries is stored or NULL |
Definition at line 78 of file merge_lines.c.
int Vect_net_build_graph | ( | struct Map_info * | Map, |
int | ltype, | ||
int | afield, | ||
int | nfield, | ||
const char * | afcol, | ||
const char * | abcol, | ||
const char * | ncol, | ||
int | geo, | ||
int | version | ||
) |
Build network graph.
Internal format for edge costs is integer, costs are multiplied before conversion to int by 1000 and for lengths LL without geo flag by 1000000. The same multiplication factor is used for nodes. Costs in database column may be 'integer' or 'double precision' number >= 0 or -1 for infinity i.e. arc or node is closed and cannot be traversed If record in table is not found for arcs, arc is skip. If record in table is not found for node, costs for node are set to 0.
Map | vector map |
ltype | line type for arcs |
afield | arc costs field (if 0, use length) |
nfield | node costs field (if 0, do not use node costs) |
afcol | column with forward costs for arc |
abcol | column with backward costs for arc (if NULL, back costs = forward costs), |
ncol | column with costs for nodes (if NULL, do not use node costs), |
geo | use geodesic calculation for length (LL), |
version | graph version to create (1, 2, 3) |
Definition at line 695 of file net_build.c.
dglGraph_s* Vect_net_get_graph | ( | struct Map_info * | Map | ) |
Get graph structure.
Graph is built by Vect_net_build_graph().
Returns NULL when graph is not built.
Map | pointer to Map_info struct |
Definition at line 393 of file net_analyze.c.
References Map_info::dgraph, and Graph_info::graph_s.
int Vect_net_get_line_cost | ( | const struct Map_info * | Map, |
int | line, | ||
int | direction, | ||
double * | cost | ||
) |
Returns in cost for given direction in *cost.
cost is set to -1 if closed.
Map | vector map with build graph (see Vect_net_ttb_build_graph and Vect_net_build_graph) | |
line | line id | |
direction | direction (GV_FORWARD, GV_BACKWARD) | |
[out] | cost |
Definition at line 412 of file net_analyze.c.
References Map_info::dgraph, Graph_info::edge_fcosts, G_debug(), and GV_FORWARD.
int Vect_net_get_node_cost | ( | const struct Map_info * | Map, |
int | node, | ||
double * | cost | ||
) |
Get cost of node.
Map | vector map with build graph (see Vect_net_ttb_build_graph and Vect_net_build_graph) | |
node | node id | |
[out] | cost | costs value |
Definition at line 467 of file net_analyze.c.
References Map_info::dgraph, G_debug(), and Graph_info::node_costs.
int Vect_net_nearest_nodes | ( | struct Map_info * | Map, |
double | x, | ||
double | y, | ||
double | z, | ||
int | direction, | ||
double | maxdist, | ||
int * | node1, | ||
int * | node2, | ||
int * | ln, | ||
double * | costs1, | ||
double * | costs2, | ||
struct line_pnts * | Points1, | ||
struct line_pnts * | Points2, | ||
double * | distance | ||
) |
Find nearest node(s) on network.
Map | vector map with build graph (see Vect_net_ttb_build_graph and Vect_net_build_graph) | |
x,y,z | point coordinates (z coordinate NOT USED !) | |
direction | (GV_FORWARD - from point to net, GV_BACKWARD - from net to point) | |
maxdist | maximum distance to the network | |
[out] | node1 | pointer where to store the node number (or NULL) |
[out] | node2 | pointer where to store the node number (or NULL) |
[out] | ln | pointer where to store the nearest line number (or NULL) |
[out] | costs1 | pointer where to store costs on nearest line to node1 (not costs from x,y,z to the line) (or NULL) |
[out] | costs2 | pointer where to store costs on nearest line to node2 (not costs from x,y,z to the line) (or NULL) |
[out] | Points1 | pointer to structure where to store vertices on nearest line to node1 (or NULL) |
[out] | Points2 | pointer to structure where to store vertices on nearest line to node2 (or NULL) |
[out] | pointer | where to distance to the line (or NULL) |
[out] | distance |
Definition at line 497 of file net_analyze.c.
int Vect_net_shortest_path | ( | struct Map_info * | Map, |
int | from, | ||
int | to, | ||
struct ilist * | List, | ||
double * | cost | ||
) |
Find shortest path.
Costs for 'from' and 'to' nodes are not considered (SP found even if 'from' or 'to' are 'closed' (costs = -1) and costs of these nodes are not added to SP costs result.
Map | vector map with build graph (see Vect_net_ttb_build_graph and Vect_net_build_graph) | |
from | from node | |
to | to node | |
[out] | List | list of line ids (path) |
[out] | cost | costs value |
Definition at line 376 of file net_analyze.c.
int Vect_net_shortest_path_coor | ( | struct Map_info * | Map, |
double | fx, | ||
double | fy, | ||
double | fz, | ||
double | tx, | ||
double | ty, | ||
double | tz, | ||
double | fmax, | ||
double | tmax, | ||
double * | costs, | ||
struct line_pnts * | Points, | ||
struct ilist * | List, | ||
struct ilist * | NodesList, | ||
struct line_pnts * | FPoints, | ||
struct line_pnts * | TPoints, | ||
double * | fdist, | ||
double * | tdist | ||
) |
Find shortest path on network between 2 points given by coordinates.
Map | vector map with build graph (see Vect_net_ttb_build_graph and Vect_net_build_graph) |
fx,fy,fz | from point x coordinate (z ignored) |
tx,ty,tz | to point x coordinate (z ignored) |
fmax | maximum distance to the network from 'from' |
tmax | maximum distance to the network from 'to' |
costs | pointer where to store costs on the network (or NULL) |
Points | pointer to the structure where to store vertices of shortest path (or NULL) |
List | pointer to the structure where list of lines on the network is stored (or NULL) |
NodesList | pointer to the structure where list of nodes on the network is stored (or NULL) |
FPoints | pointer to the structure where to store line from 'from' to first network node (or NULL) |
TPoints | pointer to the structure where to store line from last network node to 'to' (or NULL) |
fdist | distance from 'from' to the net (or NULL) |
tdist | distance from 'to' to the net (or NULL) |
Definition at line 1023 of file net_analyze.c.
int Vect_net_ttb_build_graph | ( | struct Map_info * | Map, |
int | ltype, | ||
int | afield, | ||
int | nfield, | ||
int | tfield, | ||
int | tucfield, | ||
const char * | afcol, | ||
const char * | abcol, | ||
const char * | ncol, | ||
int | geo, | ||
int | algorithm | ||
) |
Build network graph with turntable.
Internal format for edge costs is integer, costs are multiplied before conversion to int by 1000 and for lengths LL without geo flag by 1000000. The same multiplication factor is used for nodes. Costs in database column may be 'integer' or 'double precision' number >= 0 or -1 for infinity i.e. arc or node is closed and cannot be traversed If record in table is not found for arcs, costs for arc are set to 0. If record in table is not found for node, costs for node are set to 0.
Map | vector map |
ltype | line type for arcs |
afield | arc costs field (if 0, use length) |
nfield | node costs field (if 0, do not use node costs) |
tfield | field where turntable is attached |
tucfield | field with unique categories used in the turntable |
afcol | column with forward costs for arc |
abcol | column with backward costs for arc (if NULL, back costs = forward costs), |
ncol | column with costs for nodes (if NULL, do not use node costs), |
geo | use geodesic calculation for length (LL), |
algorithm | not used (in future code for algorithm) |
Definition at line 48 of file net_build.c.
int Vect_net_ttb_shortest_path | ( | struct Map_info * | Map, |
int | from, | ||
int | from_type, | ||
int | to, | ||
int | to_type, | ||
int | tucfield, | ||
struct ilist * | List, | ||
double * | cost | ||
) |
Find shortest path on network.
Costs for 'from' and 'to' nodes are not considered (SP found even if 'from' or 'to' are 'closed' (costs = -1) and costs of these nodes are not added to SP costs result.
Map | vector map with build graph (see Vect_net_ttb_build_graph and Vect_net_build_graph) | |
from | start of the path | |
from_type | if 0 - node id (intersection), if 1 - line unique cat | |
to | end of the path | |
to_type | if 0 - node id (intersection), if 1 - line unique cat | |
tucfield | field with unique categories used in the turntable | |
[out] | List | list of line ids (path) |
[out] | cost | costs value |
Definition at line 254 of file net_analyze.c.
int Vect_net_ttb_shortest_path_coor | ( | struct Map_info * | Map, |
double | fx, | ||
double | fy, | ||
double | fz, | ||
double | tx, | ||
double | ty, | ||
double | tz, | ||
double | fmax, | ||
double | tmax, | ||
int | tucfield, | ||
double * | costs, | ||
struct line_pnts * | Points, | ||
struct ilist * | List, | ||
struct ilist * | NodesList, | ||
struct line_pnts * | FPoints, | ||
struct line_pnts * | TPoints, | ||
double * | fdist, | ||
double * | tdist | ||
) |
Find shortest path on network with turntable between 2 points given by coordinates.
Map | vector map with build graph (see Vect_net_ttb_build_graph and Vect_net_build_graph) |
fx,fy,fz | from point x coordinate (z ignored) |
tx,ty,tz | to point x coordinate (z ignored) |
fmax | maximum distance to the network from 'from' |
tmax | maximum distance to the network from 'to' |
tucfield | field with unique categories used in the turntable |
costs | pointer where to store costs on the network (or NULL) |
Points | pointer to the structure where to store vertices of shortest path (or NULL) |
List | pointer to the structure where list of lines on the network is stored (or NULL) |
NodesList | pointer to the structure where list of nodes on the network is stored (or NULL) |
FPoints | pointer to the structure where to store line from 'from' to first network node (or NULL) |
TPoints | pointer to the structure where to store line from last network node to 'to' (or NULL) |
fdist | distance from 'from' to the net (or NULL) |
tdist | distance from 'to' to the net (or NULL) |
Definition at line 1058 of file net_analyze.c.
struct boxlist* Vect_new_boxlist | ( | int | have_boxes | ) |
Creates and initializes a struct boxlist.
This structure is used as container for bounding boxes with id. The library routines handle all memory allocation.
have_boxes | if set to 0, the list will hold only ids and no boxes |
Definition at line 225 of file vector/Vlib/list.c.
References boxlist::alloc_values, boxlist::box, G_malloc, boxlist::have_boxes, boxlist::id, boxlist::n_values, and NULL.
Referenced by Vect_attach_isles(), and Vect_find_area().
struct cat_list* Vect_new_cat_list | ( | void | ) |
Allocate memory for cat_list structure.
Definition at line 307 of file vector/Vlib/cats.c.
struct line_cats* Vect_new_cats_struct | ( | void | ) |
Creates and initializes line_cats structure.
This structure is used for reading and writing vector cats. The library routines handle all memory allocation.
To free allocated memory call Vect_destroy_cats_struct().
Definition at line 40 of file vector/Vlib/cats.c.
References NULL.
Referenced by NetA_initialise_varray(), and Vect_get_area_cat().
struct dblinks* Vect_new_dblinks_struct | ( | void | ) |
struct line_pnts* Vect_new_line_struct | ( | void | ) |
Creates and initializes a line_pnts structure.
This structure is used for reading and writing vector lines and polygons. The library routines handle all memory allocation. If 3 lines in memory are needed at the same time, then simply 3 line_pnts structures have to be used.
To free allocated memory call Vect_destroy_line_struct().
Calls G_fatal_error() on error.
Definition at line 45 of file line.c.
References _, G_fatal_error(), NULL, and Vect__new_line_struct().
Referenced by Vect__reallocate_cache(), Vect_build_line_area(), Vect_get_point_in_poly_isl(), Vect_point_buffer2(), and vector2perimeters().
struct ilist* Vect_new_list | ( | void | ) |
Creates and initializes a struct ilist.
This structure is used as container for integer values. The library routines handle all memory allocation.
Definition at line 32 of file vector/Vlib/list.c.
References ilist::alloc_values, G_malloc, ilist::n_values, NULL, and ilist::value.
Referenced by NetA_betweenness_closeness(), Vect_find_node(), Vect_select_areas_by_polygon(), and Vedit_extend_lines().
struct Map_info* Vect_new_map_struct | ( | void | ) |
Creates and initializes Map_info structure.
To free allocated memory call Vect_destroy_map_struct().
Definition at line 41 of file map.c.
References _, G_fatal_error(), G_zero(), malloc(), and NULL.
struct varray* Vect_new_varray | ( | int | size | ) |
Create new struct varray and allocate space for given number of items.
Space allocated is 'size + 1' so that lines are accessed by line id. Array values are set to 0.
size | size of array |
Definition at line 41 of file array.c.
References varray::c, G_calloc, G_free(), G_malloc, NULL, and varray::size.
Referenced by NetA_initialise_varray().
int Vect_node_alive | ( | const struct Map_info * | Map, |
int | node | ||
) |
Check if node is alive or dead (topological level required)
Note: Topology must be built at level >= GV_BUILD_BASE
Map | pointer to Map_info structure |
node | node id |
Definition at line 221 of file vector/Vlib/read.c.
References _, G_warning(), Plus_head::n_nodes, Plus_head::Node, NULL, and Map_info::plus.
int Vect_open_fidx | ( | struct Map_info * | Map, |
struct Format_info_offset * | offset | ||
) |
Open feature index file.
[in,out] | Map | pointer to Map_info struct |
[out] | offset | pointer to Format_info_offset (OGR or PG) |
Definition at line 250 of file open_ogr.c.
References _, Format_info_offset::array, Format_info_offset::array_alloc, Format_info_offset::array_num, dig__fread_port_C(), dig__fread_port_I(), dig__fread_port_L(), dig_file_init(), dig_init_portable(), dig_set_cur_port(), gvfile::file, Map_info::format, G_debug(), G_fatal_error(), G_fopen_old(), G_fseek(), G_malloc, G_warning(), GPATH_MAX, GV_DIRECTORY, GV_FIDX_ELEMENT, Map_info::mapset, Map_info::name, NULL, and Vect_get_full_name().
Referenced by V2_open_old_ogr(), and V2_open_old_pg().
int Vect_open_new | ( | struct Map_info * | Map, |
const char * | name, | ||
int | with_z | ||
) |
Create new vector map for reading/writing.
By default list of updated features is not maintained, see Vect_set_updated() for details.
By default map format is native (GV_FORMAT_NATIVE). If OGR file is found in the current mapset then the map (ie. OGR layer) is created in given OGR datasource (GV_FORMAT_OGR). Similarly if PG file exists then the map (ie. PostGIS table) is created using PostGIS interface (GV_FORMAT_POSTGIS). The format of map is stored in Map->format.
[out] | Map | pointer to Map_info structure |
name | name of vector map to be created | |
with_z | WITH_Z for 3D vector data otherwise WITHOUT_Z |
Definition at line 921 of file vector/Vlib/open.c.
References G_debug(), and getenv().
Referenced by Vect_close().
int Vect_open_old | ( | struct Map_info * | Map, |
const char * | name, | ||
const char * | mapset | ||
) |
Open existing vector map for reading.
This function is replaced by Vect_open_old2() to handle also direct OGR support.
Calls G_fatal_error() on failure.
[out] | Map | pointer to Map_info structure |
name | name of vector map to open | |
mapset | mapset name ("" for search path) |
Definition at line 573 of file vector/Vlib/open.c.
References FALSE, NULL, and Vect__open_old().
int Vect_open_old2 | ( | struct Map_info * | Map, |
const char * | name, | ||
const char * | mapset, | ||
const char * | layer | ||
) |
Open existing vector map for reading.
Calls G_fatal_error() on failure.
[out] | Map | pointer to Map_info structure |
name | name of vector map to open (datasource for direct OGR access) | |
mapset | mapset name ("" for search path, "OGR" for direct OGR access) | |
layer | layer name (OGR layer for direct OGR access) |
Definition at line 615 of file vector/Vlib/open.c.
References FALSE, and Vect__open_old().
int Vect_open_old_head | ( | struct Map_info * | Map, |
const char * | name, | ||
const char * | mapset | ||
) |
Reads only info about vector map (headers)
Reads from headers of 'head', 'dbln', 'topo' and 'cidx' file.
This function is replaced by Vect_open_old_head2() to handle also direct OGR support.
Calls G_fatal_error() on failure.
[out] | Map | pointer to Map_info structure |
name | name of vector map to read | |
mapset | mapset name ("" for search path) |
Definition at line 711 of file vector/Vlib/open.c.
References FALSE, NULL, TRUE, and Vect__open_old().
int Vect_open_old_head2 | ( | struct Map_info * | Map, |
const char * | name, | ||
const char * | mapset, | ||
const char * | layer | ||
) |
Reads only info about vector map (headers)
Reads from headers of 'head', 'dbln', 'topo' and 'cidx' file.
Calls G_fatal_error() on failure.
[out] | Map | pointer to Map_info structure |
name | name of vector map to read (dsn for OGR) | |
mapset | mapset name ("" for search path) | |
layer | layer name (OGR format) | |
[out] | Map | pointer to Map_info structure |
name | name of vector map to open (datasource for direct OGR access) | |
mapset | mapset name ("" for search path, "OGR" for direct OGR access) | |
layer | layer name (OGR layer for direct OGR access) |
Definition at line 737 of file vector/Vlib/open.c.
References FALSE, TRUE, and Vect__open_old().
int Vect_open_sidx | ( | struct Map_info * | Map, |
int | mode | ||
) |
Open spatial index file ('sidx')
[in,out] | Map | pointer to Map_info |
mode | 0 old, 1 update, 2 new |
Definition at line 1176 of file vector/Vlib/open.c.
Referenced by Vect_build_partial().
int Vect_open_tmp_new | ( | struct Map_info * | Map, |
const char * | name, | ||
int | with_z | ||
) |
Create new temporary vector map.
Temporary vector maps are stored in the current mapset (directory .tmp/<hostname>/vector
). If the map already exists, it is overwritten.
Temporary vector maps are automatically deleted when closing the map (see Vect_close() for details).
If name is not given (is NULL), then the name is determined by process id (tmp_<pid>
).
[out] | Map | pointer to output Map_info struct |
name | name for new vector map (or NULL) | |
with_z | WITH_Z for 3D vector data otherwise WITHOUT_Z |
Definition at line 951 of file vector/Vlib/open.c.
int Vect_open_tmp_old | ( | struct Map_info * | Map, |
const char * | name, | ||
const char * | mapset | ||
) |
Open existing temporary vector map for reading.
Temporary vector maps are stored in the current mapset (directory .tmp/<hostname>/vector
).
Calls G_fatal_error() on failure.
[out] | Map | pointer to Map_info structure |
name | name of vector map to open | |
mapset | mapset name ("" for search path) |
Definition at line 596 of file vector/Vlib/open.c.
References FALSE, NULL, TRUE, and Vect__open_old().
int Vect_open_tmp_update | ( | struct Map_info * | Map, |
const char * | name, | ||
const char * | mapset | ||
) |
Open existing temporary vector map for reading/writing.
Temporary vector maps are stored in the current mapset (directory .tmp/<hostname>/vector
).
By default list of updated features is not maintained, see Vect_set_updated() for details.
Calls G_fatal_error() on failure.
[out] | Map | pointer to Map_info structure |
name | name of vector map to update | |
mapset | mapset name |
Definition at line 666 of file vector/Vlib/open.c.
References FALSE, NULL, TRUE, and Vect__open_old().
int Vect_open_topo | ( | struct Map_info * | Map, |
int | head_only | ||
) |
Open topology file ('topo')
[in,out] | Map | pointer to Map_info structure |
head_only | TRUE to read only header |
Definition at line 1096 of file vector/Vlib/open.c.
References _, Plus_head::coor_mtime, Plus_head::coor_size, dig_file_init(), dig_load_plus(), dig_Rd_Plus_head(), err(), gvfile::file, G_debug(), G_fopen_old(), G_warning(), GPATH_MAX, GV_TOPO_ELEMENT, Map_info::mapset, Map_info::name, NULL, Map_info::plus, Coor_info::size, Vect__get_element_path(), Vect__get_path(), and Vect_coor_info().
int Vect_open_update | ( | struct Map_info * | Map, |
const char * | name, | ||
const char * | mapset | ||
) |
Open existing vector map for reading/writing.
This function is replaced by Vect_open_update2() to handle also direct OGR support.
By default list of updated features is not maintained, see Vect_set_updated() for details.
Calls G_fatal_error() on failure.
[out] | Map | pointer to Map_info structure |
name | name of vector map to update | |
mapset | mapset name |
Definition at line 640 of file vector/Vlib/open.c.
References FALSE, NULL, TRUE, and Vect__open_old().
int Vect_open_update2 | ( | struct Map_info * | Map, |
const char * | name, | ||
const char * | mapset, | ||
const char * | layer | ||
) |
Open existing vector map for reading/writing.
By default list of updated features is not maintained, see Vect_set_updated() for details.
Calls G_fatal_error() on failure.
[out] | Map | pointer to Map_info structure |
name | name of vector map to open (datasource for direct OGR access) | |
mapset | mapset name ("" for search path, "OGR" for direct OGR access) | |
layer | layer name (OGR layer for direct OGR access) |
Definition at line 688 of file vector/Vlib/open.c.
References FALSE, TRUE, and Vect__open_old().
int Vect_open_update_head | ( | struct Map_info * | Map, |
const char * | name, | ||
const char * | mapset | ||
) |
Open header file of existing vector map for updating (mostly for database link updates)
[out] | Map | pointer to Map_info structure |
name | name of vector map to update | |
mapset | mapset name |
Definition at line 754 of file vector/Vlib/open.c.
References FALSE, NULL, TRUE, and Vect__open_old().
int Vect_option_to_types | ( | const struct Option * | type_opt | ) |
Get types from options.
type_opt | Option structure |
Definition at line 26 of file vector/Vlib/type.c.
int Vect_overlay | ( | struct Map_info * | AMap, |
int | atype, | ||
struct ilist * | AList, | ||
struct ilist * | AAList, | ||
struct Map_info * | BMap, | ||
int | btype, | ||
struct ilist * | BList, | ||
struct ilist * | BAList, | ||
int | operator, | ||
struct Map_info * | OMap | ||
) |
Overlay 2 vector maps and create new one.
AMap | vector map A | |
atype | feature type for A | |
AList | unused ? | |
AAList | unused ? | |
BMap | vector map B | |
btype | feature type for B | |
BList | unused ? | |
BAList | unused ? | |
operator | operator code | |
[out] | OMap | output vector map |
Definition at line 62 of file overlay.c.
References _, G_fatal_error(), GV_O_AND, and Vect_overlay_and().
int Vect_overlay_and | ( | struct Map_info * | AMap, |
int | atype, | ||
struct ilist * | AList, | ||
struct ilist * | AAList, | ||
struct Map_info * | BMap, | ||
int | btype, | ||
struct ilist * | BList, | ||
struct ilist * | BAList, | ||
struct Map_info * | OMap | ||
) |
Overlay 2 vector maps with AND.
AND supports:point line area point + - + line - - - area + - -
AMap | vector map A |
atype | feature type for A |
AList | unused ? |
AAList | unused ? |
BMap | vector map B |
btype | feature type for B |
BList | unused ? |
BAList | unused ? |
OMap | output vector map |
Definition at line 100 of file overlay.c.
Referenced by Vect_overlay().
int Vect_overlay_str_to_operator | ( | const char * | str | ) |
Get operator code from string.
str | operator code string |
Definition at line 35 of file overlay.c.
References GV_O_AND, GV_O_OVERLAP, GV_ON_AND, and GV_ON_OVERLAP.
void Vect_point_buffer2 | ( | double | px, |
double | py, | ||
double | da, | ||
double | db, | ||
double | dalpha, | ||
int | round, | ||
double | tol, | ||
struct line_pnts ** | oPoints | ||
) |
Creates buffer around the point (px, py).
px | input point x-coordinate | |
py | input point y-coordinate | |
da | distance along major axis | |
db | distance along minor axis | |
dalpha | angle between 0x and major axis | |
round | make corners round | |
tol | maximum distance between theoretical arc and output segments | |
[out] | oPoints | output polygon outer border (ccw order) |
Definition at line 1135 of file buffer2.c.
References G_debug(), PI, and Vect_new_line_struct().
int Vect_point_in_area | ( | double | x, |
double | y, | ||
const struct Map_info * | Map, | ||
int | area, | ||
struct bound_box * | box | ||
) |
Check if point is in area.
x,y | point coordinates |
Map | pointer to Map_info structure |
area | area id |
box | area bounding box |
Definition at line 335 of file vector/Vlib/area.c.
int Vect_point_in_area_outer_ring | ( | double | X, |
double | Y, | ||
const struct Map_info * | Map, | ||
int | area, | ||
struct bound_box * | box | ||
) |
Determines if a point (X,Y) is inside an area outer ring. Islands are not considered.
X,Y | point coordinates |
Map | vector map |
area | area id |
box | area bounding box |
Definition at line 856 of file Vlib/poly.c.
int Vect_point_in_box | ( | double | x, |
double | y, | ||
double | z, | ||
const struct bound_box * | Box | ||
) |
Tests if point is in 3D box.
This function considers 3D point and 3D bounding box.
struct bound_box bbox; bbox.N = 135; bbox.S = 125; bbox.E = 220; bbox.W = 215; bbox.T = 340; bbox.B = 330; Vect_point_in_box(217, 130, 335, &bbox);
x | coordinate (W-E direction) |
y | coordinate (S-N direction) |
z | coordinate (B-T direction) |
Box | boundary box |
Definition at line 48 of file vector/Vlib/box.c.
References bound_box::B, N, bound_box::S, and bound_box::W.
Referenced by P_Mean_Calc().
int Vect_point_in_box_2d | ( | double | x, |
double | y, | ||
const struct bound_box * | Box | ||
) |
Tests if point is in 2D box.
Only x and y are tested. Top and bottom of the bounding box are ignored.
x | coordinate (W-E direction) |
y | coordinate (S-N direction) |
Box | boundary box (only W, E, S, N are used) |
Definition at line 68 of file vector/Vlib/box.c.
References N, bound_box::S, and bound_box::W.
int Vect_point_in_island | ( | double | X, |
double | Y, | ||
const struct Map_info * | Map, | ||
int | isle, | ||
struct bound_box * | box | ||
) |
Determines if a point (X,Y) is inside an island.
X,Y | point coordinates |
Map | vector map |
isle | isle id |
box | isle bounding box |
Definition at line 925 of file Vlib/poly.c.
int Vect_point_in_poly | ( | double | X, |
double | Y, | ||
const struct line_pnts * | Points | ||
) |
Determines if a point (X,Y) is inside a polygon.
X,Y | point coordinates |
Points | polygon |
Definition at line 826 of file Vlib/poly.c.
References G_debug(), and line_pnts::n_points.
Referenced by Vect_get_point_in_poly_isl().
int Vect_point_on_line | ( | const struct line_pnts * | Points, |
double | distance, | ||
double * | x, | ||
double * | y, | ||
double * | z, | ||
double * | angle, | ||
double * | slope | ||
) |
Find point on line in the specified distance.
From the beginning, measured along line.
If the distance is greater than line length or negative, error is returned.
Points | pointer to line_pnts structure |
distance | distance value |
x,y,z | pointers to point coordinates or NULL |
angle | pointer to angle of line in that point (radians, counter clockwise from x axis) or NULL |
slope | pointer to slope angle in radians (positive up) |
double Vect_points_distance | ( | double | x1, |
double | y1, | ||
double | z1, | ||
double | x2, | ||
double | y2, | ||
double | z2, | ||
int | with_z | ||
) |
Calculate distance of 2 points.
Simply uses Pythagoras.
x1,y1,z1 | first point |
x2,y2,z2 | second point |
with_z | use z coordinate |
Definition at line 898 of file line.c.
Referenced by Vect_find_node(), and Vedit_get_min_distance().
int Vect_print_header | ( | const struct Map_info * | Map | ) |
Print vector map header to stdout.
Map | pointer to Map_info structure |
Definition at line 32 of file vector/Vlib/header.c.
References Vect_get_map_date(), Vect_get_map_name(), Vect_get_organization(), and Vect_get_scale().
GEOSGeometry* Vect_read_area_geos | ( | struct Map_info * | Map, |
int | area | ||
) |
Read vector area and stores it as GEOSGeometry instance (polygon)
You should free allocated memory by GEOSGeom_destroy().
Map | pointer to Map_info structure |
area | area id |
Definition at line 81 of file geos.c.
Referenced by Vect_read_area_to_wkb(), and Vect_read_area_to_wkt().
unsigned char* Vect_read_area_to_wkb | ( | struct Map_info * | Map, |
int | area, | ||
size_t * | size | ||
) |
Read vector area and return it as Well Known Binary (WKB) unsigned char array.
Map | pointer to Map_info structure |
area | area id |
size | The size of the returned unsigned char array |
Definition at line 33 of file geos_to_wktb.c.
References init(), NULL, and Vect_read_area_geos().
char* Vect_read_area_to_wkt | ( | struct Map_info * | Map, |
int | area | ||
) |
Read vector area and return it as Well Known Text (WKT) unsigned char array.
Map | pointer to Map_info structure |
area | area id |
size | The size of the returned unsigned char array |
Definition at line 72 of file geos_to_wktb.c.
References init(), NULL, and Vect_read_area_geos().
int Vect_read_ascii | ( | FILE * | ascii, |
struct Map_info * | Map | ||
) |
int Vect_read_ascii_head | ( | FILE * | dascii, |
struct Map_info * | Map | ||
) |
Read header of GRASS ASCII vector format.
dascii | pointer to the ASCII file |
Map | pointer to Map_info structure |
Definition at line 256 of file ascii.c.
References _, G_getl2(), G_warning(), Vect_set_comment(), Vect_set_date(), Vect_set_map_date(), Vect_set_map_name(), Vect_set_organization(), Vect_set_person(), Vect_set_scale(), Vect_set_thresh(), and Vect_set_zone().
int Vect_read_colors | ( | const char * | name, |
const char * | mapset, | ||
struct Colors * | colors | ||
) |
Read color table of vector map.
The color table for the vector map name in the specified mapset is read into the colors structure.
Note: If a secondary color file for map name name exists in the current mapset, that color file is read. This allows the user to define their own color lookup tables for vector maps found in other mapsets.
Warning message is printed if the color file is missing or invalid.
name | vector map name | |
mapset | mapset name ("" for search path) | |
[out] | colors | pointer to Colors structure (can be NULL) |
Definition at line 42 of file vector/Vlib/color_read.c.
int Vect_read_dblinks | ( | struct Map_info * | Map | ) |
Read dblinks to existing structure.
Variables are not substituted by values.
Map | pointer to Map_info structure |
Definition at line 920 of file field.c.
References Map_info::dblnk, Map_info::format, G_debug(), GV_FORMAT_NATIVE, Map_info::mapset, Map_info::name, and Vect_reset_dblinks().
int Vect_read_header | ( | struct Map_info * | Map | ) |
Read vector map header from map head file.
Map | pointrt to Map_info structure |
Definition at line 50 of file vector/Vlib/header.c.
References Vect__read_head().
int Vect_read_line | ( | const struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c, | ||
int | line | ||
) |
Read vector feature (topological level required)
This function implements random access. Constraits are ignored.
Note: Topology must be built at level >= GV_BUILD_BASE
A warning is printed on failure.
Map | pointer to vector map | |
[out] | line_p | feature geometry (pointer to line_pnts struct) |
[out] | line_c | feature categories (pointer to line_cats struct) |
line | feature id (starts at 1) |
Definition at line 160 of file vector/Vlib/read.c.
Referenced by NetA_initialise_varray(), and Vect_get_area_cats().
GEOSGeometry* Vect_read_line_geos | ( | struct Map_info * | Map, |
int | line, | ||
int * | type | ||
) |
Read vector feature and stores it as GEOSGeometry instance.
Supported feature types:
You should free allocated memory by GEOSGeom_destroy().
Map | pointer to Map_info structure | |
line | feature id | |
[out] | type | feature type or NULL |
unsigned char* Vect_read_line_to_wkb | ( | const struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c, | ||
int | line, | ||
size_t * | size, | ||
int * | error | ||
) |
Read a Well Known Binary (WKB) representation of a given feature id.
This function reads a specific feature and converts it into a WKB representation. line_pnts and line_cats structures can be provided to store the result of the read operation. That is meaningful in case the category values of the feature are needed. This function is not thread safe, it uses static variables for speedup.
Supported feature types:
Map | pointer to Map_info structure |
line_p | pointer to line_pnts structure to use, or NULL |
line_c | pointer to line_cats structure to use, or NULL |
line | The id of the feature to read |
size | The size of the returned unsigned char array |
Definition at line 125 of file geos_to_wktb.c.
int Vect_read_next_line | ( | const struct Map_info * | Map, |
struct line_pnts * | line_p, | ||
struct line_cats * | line_c | ||
) |
Read next vector feature.
This function implements sequential access, constraints are reflected, see Vect_set_constraint_region(), Vect_set_constraint_type(), or Vect_set_constraint_field() for details.
Use Vect_rewind() to reset reading. Topological level is not required.
A warning is printed on failure.
Map | pointer Map_info struct | |
[out] | line_p | feature geometry (pointer to line_pnts struct) |
[out] | line_c | feature categories (pointer to line_cats struct) |
Definition at line 121 of file vector/Vlib/read.c.
References _, G_debug(), G_warning(), Map_info::next_line, and VECT_OPEN.
Copy region window to bounding box.
Window | region structure (raster-based) | |
[out] | Box | boundary box (vector-based) |
Definition at line 467 of file vector/Vlib/box.c.
References bound_box::B, bound_box::E, Cell_head::east, bound_box::N, Cell_head::north, PORT_DOUBLE_MAX, bound_box::S, Cell_head::south, bound_box::T, bound_box::W, and Cell_head::west.
Referenced by P_Mean_Calc().
void Vect_remove_bridges | ( | struct Map_info * | Map, |
struct Map_info * | Err, | ||
int * | lines_removed, | ||
int * | bridges_removed | ||
) |
Remove bridges from vector map.
Remove bridges (type boundary) connecting areas to islands or 2 islands. Islands and areas must be already clean, i.e. without dangles. Bridge may be formed by more lines. Optionally deleted bridges are written to error map. Input map must be opened on level 2 for update at least on level GV_BUILD_BASE
Map | input map where bridges are deleted |
Err | vector map where deleted bridges are written or NULL |
lines_removed | number of lines removed |
bridges_removed | Err number of bridges removed |
int Vect_remove_colors | ( | const char * | name, |
const char * | mapset | ||
) |
Remove color table of raster map.
name | name of raster map |
mapset | name of mapset |
Definition at line 29 of file vector/Vlib/color_remove.c.
References G_mapset(), G_name_is_fully_qualified(), G_remove(), GMAPSET_MAX, GNAME_MAX, GPATH_MAX, GV_COLR2_DIRECTORY, GV_COLR_ELEMENT, and GV_DIRECTORY.
void Vect_remove_constraints | ( | struct Map_info * | Map | ) |
Remove all constraints.
Map | pointer to Map_info struct |
Definition at line 122 of file constraint.c.
References Map_info::constraint, FALSE, Map_info::field_flag, Map_info::region_flag, and Map_info::type_flag.
void Vect_remove_dangles | ( | struct Map_info * | Map, |
int | type, | ||
double | maxlength, | ||
struct Map_info * | Err | ||
) |
Remove dangles from vector map.
Remove dangles of given type shorter than maxlength from vector map.
Line is considered to be a dangle if on at least one end node is no other line of given type(s). If a dangle is formed by more lines, such string of lines is taken as one dangle and either deleted are all parts or nothing.
Optionally deleted dangles are written to error map.
Input map must be opened on level 2 for update.
Map | input map where have to be deleted | |
type | type of dangles (GV_LINES, GV_LINE or GV_BOUNDARY) | |
maxlength | maxlength of dangles or -1 for all dangles | |
[out] | Err | vector map where deleted dangles are written or NULL |
Remove duplicate features from vector map.
Remove duplicate lines of given types from vector map. Duplicate lines may be optionally written to error map. Input map must be opened on level 2 for update. Categories are merged. GV_BUILD_BASE is sufficient.
[in,out] | Map | vector map where duplicate lines will be deleted |
type | type of line to be delete | |
[out] | Err | vector map where duplicate lines will be written or NULL |
Definition at line 69 of file remove_duplicates.c.
int Vect_remove_small_areas | ( | struct Map_info * | Map, |
double | thresh, | ||
struct Map_info * | Err, | ||
double * | removed_area | ||
) |
Remove small areas from the map map.
Centroid of the area and the longest boundary with adjacent area is removed. Map topology must be built GV_BUILD_CENTROIDS.
[in,out] | Map | vector map |
thresh | maximum area size for removed areas | |
[out] | Err | vector map where removed lines and centroids are written |
removed_area | pointer to where total size of removed area is stored or NULL |
Definition at line 41 of file remove_areas.c.
References Map_info::format, GV_FORMAT_NATIVE, Vect_remove_small_areas_ext(), and Vect_remove_small_areas_nat().
int Vect_rename | ( | const char * | in, |
const char * | out | ||
) |
Rename existing vector map (in the current mapset).
Attribute tables are created in the same database where input tables were stored.
The origial format (native/OGR) is used.
Note: Output vector map is overwritten if exists!
in | name of vector map to be renamed |
out | name for output vector map |
Definition at line 234 of file map.c.
Referenced by M_do_rename().
int Vect_reset_boxlist | ( | struct boxlist * | list | ) |
Reset boxlist structure.
To make sure boxlist structure is clean to be re-used. List must have previously been created with Vect_new_boxlist().
[in,out] | list | pointer to struct boxlist |
Definition at line 252 of file vector/Vlib/list.c.
References boxlist::n_values.
int Vect_reset_cats | ( | struct line_cats * | Cats | ) |
Reset category structure to make sure cats structure is clean to be re-used.
I.e. it has no cats associated with it. Cats must have previously been created with Vect_new_cats_struct()
[out] | Cats | line_cats structure |
Definition at line 294 of file vector/Vlib/cats.c.
References line_cats::n_cats.
Referenced by Vect_get_area_cat(), and Vect_get_area_cats().
void Vect_reset_dblinks | ( | struct dblinks * | p | ) |
Reset dblinks structure (number of fields)
p | pointer to existing dblinks structure |
Definition at line 94 of file field.c.
References dblinks::n_fields.
Referenced by Vect_read_dblinks().
void Vect_reset_line | ( | struct line_pnts * | Points | ) |
Reset line.
Make sure line structure is clean to be re-used, i.e. it has no points associated with it Points must have previously been created with Vect_new_line_struct().
Points | pointer to line_pnts structure to be reset |
Definition at line 130 of file line.c.
Referenced by Vect__get_area_points_pg(), Vect_get_area_points(), and Vect_get_isle_points().
int Vect_reset_list | ( | struct ilist * | list | ) |
Reset ilist structure.
To make sure ilist structure is clean to be re-used. List must have previously been created with Vect_new_list().
[in,out] | list | pointer to struct ilist |
Definition at line 57 of file vector/Vlib/list.c.
References ilist::n_values.
Referenced by Vect_field_cat_get(), Vect_select_areas_by_polygon(), Vect_select_nodes_by_box(), and Vect_spatial_index_select().
void Vect_reset_updated | ( | struct Map_info * | Map | ) |
Reset list of updated lines/nodes.
Map | pointer to Map_info struct |
Definition at line 472 of file level_two.c.
int Vect_restore_line | ( | struct Map_info * | Map, |
off_t | offset, | ||
off_t | line | ||
) |
Restore previously deleted feature (topological level required)
Note: Topology must be built at level >= GV_BUILD_BASE
A warning is printed on error.
Map | pointer to Map_info structure |
offset | feature offset to be restored |
line | feature id to be restored (used only on level 2) |
Definition at line 286 of file vector/Vlib/write.c.
int Vect_rewind | ( | struct Map_info * | Map | ) |
Rewind vector map to cause reads to start at beginning.
Map | pointer to Map_info structure |
Definition at line 66 of file vector/Vlib/rewind.c.
References G_debug(), Map_info::level, Map_info::name, and VECT_OPEN.
off_t Vect_rewrite_line | ( | struct Map_info * | Map, |
off_t | line, | ||
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Rewrites existing feature (topological level required)
Note: Topology must be built at level >= GV_BUILD_BASE
A warning is printed on error.
The number of points or cats or type may change. If necessary, the old feature is deleted and new is written.
Map | pointer to Map_info structure |
line | feature id (level 2) or feature offset (level 1) |
type | feature type (GV_POINT, GV_LINE, ...) |
points | feature geometry |
cats | feature categories |
Definition at line 220 of file vector/Vlib/write.c.
int Vect_save_fidx | ( | struct Map_info * | Map, |
struct Format_info_offset * | offset | ||
) |
Save feature index file for vector map.
Map | pointer to Map_info structure |
offset | pointer to Format_info_offset struct (see Format_info_ogr and Format_info_pg struct for implementation issues) |
Definition at line 116 of file build_ogr.c.
References _, Format_info_offset::array, Format_info_offset::array_num, Plus_head::built, dig__byte_order_out(), dig__fwrite_port_C(), dig__fwrite_port_I(), dig__fwrite_port_L(), dig_file_init(), dig_init_portable(), dig_set_cur_port(), FALSE, gvfile::file, G_debug(), G_fatal_error(), G_mapset(), G_warning(), GPATH_MAX, GV_BUILD_ALL, GV_DIRECTORY, GV_FIDX_ELEMENT, Map_info::mapset, Map_info::name, NULL, Map_info::plus, Map_info::support_updated, and Vect__get_element_path().
Referenced by V2_close_ogr(), and V2_close_pg().
int Vect_save_frmt | ( | struct Map_info * | Map | ) |
Save format definition file for vector map.
Map | pointer to Map_info structure |
Definition at line 250 of file vector/Vlib/close.c.
References _, Format_info_pg::conninfo, Format_info_ogr::dsn, Map_info::fInfo, Map_info::format, G_fatal_error(), G_fopen_new(), G_verbose_message(), G_warning(), GPATH_MAX, GV_DIRECTORY, GV_FORMAT_OGR, GV_FORMAT_POSTGIS, GV_FRMT_ELEMENT, Format_info_ogr::layer_name, Map_info::name, NULL, Format_info::ogr, Format_info::pg, Format_info_pg::schema_name, and Format_info_pg::table_name.
Referenced by V1_close_ogr(), and V1_close_pg().
int Vect_save_sidx | ( | struct Map_info * | Map | ) |
Save spatial index file for vector map.
Map | vector map |
Definition at line 1247 of file build.c.
References _, dig__byte_order_out(), dig_file_init(), dig_init_portable(), dig_Wr_spidx(), FALSE, gvfile::file, G_debug(), G_warning(), GPATH_MAX, GV_SIDX_ELEMENT, NULL, Map_info::plus, Plus_head::Spidx_built, Plus_head::spidx_fp, Plus_head::Spidx_new, Plus_head::spidx_port, TRUE, Vect__get_element_path(), and Vect_get_name().
int Vect_save_topo | ( | struct Map_info * | Map | ) |
Save topology file for vector map.
Map | pointer to Map_info structure |
Definition at line 999 of file build.c.
References _, dig__byte_order_out(), dig_file_init(), dig_init_portable(), dig_write_plus_file(), gvfile::file, G_debug(), G_fopen_new(), G_warning(), GPATH_MAX, GV_TOPO_ELEMENT, Map_info::name, NULL, Map_info::plus, Plus_head::port, and Vect__get_path().
int Vect_segment_intersection | ( | double | ax1, |
double | ay1, | ||
double | az1, | ||
double | ax2, | ||
double | ay2, | ||
double | az2, | ||
double | bx1, | ||
double | by1, | ||
double | bz1, | ||
double | bx2, | ||
double | by2, | ||
double | bz2, | ||
double * | x1, | ||
double * | y1, | ||
double * | z1, | ||
double * | x2, | ||
double * | y2, | ||
double * | z2, | ||
int | with_z | ||
) |
Check for intersect of 2 line segments.
ax1,ay1,az1,ax2,ay2,az2 | input line a | |
bx1,by1,bz1,bx2,by2,bz2 | input line b | |
[out] | x1,y1,z1 | intersection point1 (case 2-4) |
[out] | x2,y2,z2 | intersection point2 (case 2-4) |
with_z | use z coordinate (3D) (TODO) |
Definition at line 109 of file vector/Vlib/intersect.c.
int Vect_select_areas_by_box | ( | struct Map_info * | Map, |
const struct bound_box * | Box, | ||
struct boxlist * | list | ||
) |
Select areas with bounding boxes by box.
Select areas whose boxes overlap specified box!!! It means that selected area may or may not overlap the box.
Map | vector map | |
Box | bounding box | |
[out] | output | list, must be initialized |
Definition at line 125 of file sindex.c.
Referenced by Vect_find_area().
int Vect_select_areas_by_polygon | ( | struct Map_info * | Map, |
struct line_pnts * | Polygon, | ||
int | nisles, | ||
struct line_pnts ** | Isles, | ||
struct ilist * | List | ||
) |
Select areas by Polygon with optional isles.
Polygons should be closed, i.e. first and last points must be identical.
Map | vector map | |
Polygon | outer ring | |
nisles | number of islands or 0 | |
Isles | array of islands or NULL | |
[out] | list | output list, must be initialised |
Definition at line 324 of file sindex.c.
References G_debug(), GV_BOUNDARY, ilist::n_values, NULL, Vect_new_list(), Vect_reset_list(), and Vect_select_lines_by_polygon().
Select dangles from vector map.
Remove dangles of given type shorter than maxlength from vector map.
Line is considered to be a dangle if on at least one end node is no other line of given type(s). If a dangle is formed by more lines, such string of lines is taken as one dangle.
Input map must be opened on level 2 for update.
Map | input map where have to be deleted | |
type | type of dangles (GV_LINES, GV_LINE or GV_BOUNDARY) | |
maxlength | maxlength of dangles or -1 for all dangles | |
[out] | List | list of selected features |
int Vect_select_isles_by_box | ( | struct Map_info * | Map, |
const struct bound_box * | Box, | ||
struct boxlist * | list | ||
) |
Select isles with bounding boxes by box.
Select isles whose boxes overlap specified box!!! It means that selected isle may or may not overlap the box.
Map | vector map | |
Box | bounding box | |
[out] | list | output list, must be initialized |
Definition at line 171 of file sindex.c.
References bound_box::B, dig_select_isles(), bound_box::E, G_debug(), bound_box::N, boxlist::n_values, Map_info::plus, bound_box::S, bound_box::T, and bound_box::W.
Referenced by Vect_attach_isles().
int Vect_select_lines_by_box | ( | struct Map_info * | Map, |
const struct bound_box * | Box, | ||
int | type, | ||
struct boxlist * | list | ||
) |
Select lines with bounding boxes by box.
Select lines whose boxes overlap specified box!!! It means that selected line may or may not overlap the box.
Map | vector map | |
Box | bounding box | |
type | line type | |
[out] | list | output list, must be initialized |
int Vect_select_lines_by_polygon | ( | struct Map_info * | Map, |
struct line_pnts * | Polygon, | ||
int | nisles, | ||
struct line_pnts ** | Isles, | ||
int | type, | ||
struct ilist * | List | ||
) |
Select lines by Polygon with optional isles.
Polygons should be closed, i.e. first and last points must be identical.
Map | vector map | |
Polygon | outer ring | |
nisles | number of islands or 0 | |
Isles | array of islands or NULL | |
type | line type | |
[out] | list | output list, must be initialised |
Definition at line 228 of file sindex.c.
Referenced by Vect_select_areas_by_polygon().
int Vect_select_nodes_by_box | ( | struct Map_info * | Map, |
const struct bound_box * | Box, | ||
struct ilist * | list | ||
) |
Select nodes by box.
Map | vector map | |
Box | bounding box | |
[out] | list | output list, must be initialized |
Definition at line 194 of file sindex.c.
References bound_box::B, dig_select_nodes(), bound_box::E, G_debug(), bound_box::N, ilist::n_values, Map_info::plus, bound_box::S, bound_box::T, Vect_reset_list(), and bound_box::W.
Referenced by Vect_find_node().
void Vect_set_category_index_update | ( | struct Map_info * | Map | ) |
Set category index to be updated when vector is changed.
By default, category index is not updated if vector is changed, this function sets category index update.
WARNING: currently only category for elements is updated not for areas
Map | vector map |
Definition at line 560 of file map.c.
References Map_info::plus, TRUE, and Plus_head::update_cidx.
int Vect_set_comment | ( | struct Map_info * | Map, |
const char * | str | ||
) |
Set comment or other info string in map header.
Map | pointer to Map_info structure |
str | comment or other info string |
Definition at line 438 of file vector/Vlib/header.c.
References dig_head::comment, G_free(), G_store(), and Map_info::head.
Referenced by Vect__init_head(), Vect__read_head(), Vect_copy_head_data(), and Vect_read_ascii_head().
int Vect_set_constraint_field | ( | struct Map_info * | Map, |
int | field | ||
) |
Set constraint field.
Vect_read_next_line() will read only features of given type. Note that categories must be read otherwise this constraint is ignored. Constraint is ignored for random access - Vect_read_line().
Ignored for non-native vector formats.
Note: Field is called layer on user level.
Map | pointer to Map_info struct |
field | field number (-1 for all fields) |
Definition at line 147 of file constraint.c.
References _, Map_info::constraint, FALSE, Map_info::field, Map_info::field_flag, Map_info::format, G_warning(), GV_FORMAT_NATIVE, and TRUE.
int Vect_set_constraint_region | ( | struct Map_info * | Map, |
double | n, | ||
double | s, | ||
double | e, | ||
double | w, | ||
double | t, | ||
double | b | ||
) |
Set constraint region.
Vect_read_next_line() will read only features inside of given region or features with overlapping bounding box.
Map | pointer to Map_info struct |
n,s,e,w,t,b | bbox definition (north, south, east, west, top, and bottom coordinates) |
Definition at line 47 of file constraint.c.
int Vect_set_constraint_type | ( | struct Map_info * | Map, |
int | type | ||
) |
Set constraint type.
Vect_read_next_line() will read only features of given type. Constraint is ignored for random access - Vect_read_line().
Map | pointer to Map_info struct |
type | constraint feature type (GV_POINT, GV_LINE, ...) |
Definition at line 106 of file constraint.c.
int Vect_set_date | ( | struct Map_info * | Map, |
const char * | str | ||
) |
Set date of digitization in map header.
Map | pointer to Map_info structure |
str | date given as string |
Definition at line 299 of file vector/Vlib/header.c.
References dig_head::date, G_free(), G_store(), and Map_info::head.
Referenced by Vect__init_head(), Vect__read_head(), Vect_copy_head_data(), and Vect_read_ascii_head().
void Vect_set_db_updated | ( | struct Map_info * | Map | ) |
Rewrite 'dbln' file.
Should be used by GRASS modules which update database tables, so that other applications know that tables were changed and can reload data.
Map | pointer to Map_info structure |
Definition at line 1061 of file field.c.
References _, G_fatal_error(), G_mapset(), G_strcasecmp(), Map_info::mapset, and Vect_write_dblinks().
Define standard error handler for input and output vector maps.
This handler:
Note: It's recommended to call this routine after Vect_open_old() or Vect_open_old2().
In | pointer in Map_info struct (input vector map) or NULL |
Out | pointer to Map_info struct (output vector map) or NULL |
Definition at line 58 of file vector/Vlib/handler.c.
References G_add_error_handler(), and G_malloc.
int Vect_set_map_date | ( | struct Map_info * | Map, |
const char * | str | ||
) |
Set date when the source map was originally produced in map header.
Map | pointer to Map_info structure |
str | date given as a string |
Definition at line 383 of file vector/Vlib/header.c.
References G_free(), G_store(), Map_info::head, and dig_head::source_date.
Referenced by Vect__init_head(), Vect__read_head(), Vect_copy_head_data(), and Vect_read_ascii_head().
int Vect_set_map_name | ( | struct Map_info * | Map, |
const char * | str | ||
) |
Set map name in map header.
Map | pointer to Map_info structure |
str | map name to be set |
Definition at line 355 of file vector/Vlib/header.c.
References G_free(), G_store(), Map_info::head, and dig_head::map_name.
Referenced by Vect__init_head(), Vect__read_head(), Vect_copy_head_data(), and Vect_read_ascii_head().
int Vect_set_open_level | ( | int | level | ) |
Predetermine level at which a vector map will be opened for reading.
If it can't open that level, the open will fail. The specified level must be set before any call to open. The default is to try to open the highest level possible, and keep stepping down until success.
NOTE: This should only be used to set when you wish to force a lower level open. If you require a higher level, then just check the return to verify the level instead of forcing it. This is because future releases will have higher levels which will be downward compatible and which your programs should support by default.
level | vector access level |
Definition at line 134 of file vector/Vlib/open.c.
int Vect_set_organization | ( | struct Map_info * | Map, |
const char * | str | ||
) |
Set organization string in map header.
Map | pointer to Map_info structure |
str | organization name |
Definition at line 268 of file vector/Vlib/header.c.
References G_free(), G_store(), Map_info::head, and dig_head::organization.
Referenced by Vect__init_head(), Vect__read_head(), Vect_copy_head_data(), and Vect_read_ascii_head().
int Vect_set_person | ( | struct Map_info * | Map, |
const char * | str | ||
) |
Set name of user who digitized the map in map header.
Map | pointer to Map_info structure |
str | user name |
Definition at line 327 of file vector/Vlib/header.c.
References G_free(), G_store(), Map_info::head, and dig_head::user_name.
Referenced by Vect__init_head(), Vect__read_head(), Vect_copy_head_data(), and Vect_read_ascii_head().
int Vect_set_proj | ( | struct Map_info * | Map, |
int | proj | ||
) |
Set projection in map header.
Supported projections:
Map | pointer to Map_info structure |
proj | projection code |
Definition at line 502 of file vector/Vlib/header.c.
References Map_info::head, and dig_head::proj.
Referenced by Vect__init_head(), and Vect__read_head().
void Vect_set_release_support | ( | struct Map_info * | Map | ) |
Set spatial index to be realease when vector is closed.
By default, the memory occupied by spatial index is not released.
Map | vector map |
Definition at line 544 of file map.c.
References Map_info::plus, Plus_head::release_support, and TRUE.
int Vect_set_scale | ( | struct Map_info * | Map, |
int | scale | ||
) |
Set map scale in map header.
Map | pointer to Map_info structure |
scale | map scale |
Definition at line 411 of file vector/Vlib/header.c.
Referenced by Vect__init_head(), Vect__read_head(), Vect_copy_head_data(), and Vect_read_ascii_head().
int Vect_set_thresh | ( | struct Map_info * | Map, |
double | thresh | ||
) |
Set threshold used for digitization in map header.
Map | pointer to Map_info structure |
thresh | threshold used for digitization |
Definition at line 568 of file vector/Vlib/header.c.
References dig_head::digit_thresh, G_debug(), and Map_info::head.
Referenced by Vect__init_head(), Vect__read_head(), Vect_copy_head_data(), and Vect_read_ascii_head().
void Vect_set_updated | ( | struct Map_info * | Map, |
int | enable | ||
) |
Enable/disable maintanance of list of updated lines/nodes.
See Plus_head.uplist for details.
Map | pointer to Map_info struct |
enable | TRUE/FALSE to enable/disable |
Definition at line 458 of file level_two.c.
References G_debug(), and Map_info::name.
int Vect_set_varray_from_cat_list | ( | const struct Map_info * | Map, |
int | field, | ||
struct cat_list * | clist, | ||
int | type, | ||
int | value, | ||
struct varray * | varray | ||
) |
Set values in 'varray' to 'value' from category list.
If category of object of given type is in clist (category list). type may be either: GV_AREA or: GV_POINT | GV_LINE | GV_BOUNDARY | GV_CENTROID
Array is not reset to zero before, but old values (if any > 0) are overwritten. Array must be initialised by Vect_new_varray() call.
Map | vector map | |
field | layer number | |
clist | list of categories | |
type | feature type | |
value | value to set up | |
[out] | varray | varray structure to modify |
int Vect_set_varray_from_cat_string | ( | const struct Map_info * | Map, |
int | field, | ||
const char * | cstring, | ||
int | type, | ||
int | value, | ||
struct varray * | varray | ||
) |
Set values in 'varray' to 'value' from category string.
If category of object of given type is in cstring (string representing category list like: '1,3,5-7'). type may be either: GV_AREA or: GV_POINT | GV_LINE | GV_BOUNDARY | GV_CENTROID
Array is not reset to zero before, but old values (if any > 0) are overwritten. Array must be initialised by Vect_new_varray() call.
Map | vector map | |
field | layer number | |
cstring | pointer to string with categories | |
type | feature type | |
value | value to set up | |
[out] | varray | varray structure to modify |
Definition at line 82 of file array.c.
Referenced by NetA_initialise_varray().
int Vect_set_varray_from_db | ( | const struct Map_info * | Map, |
int | field, | ||
const char * | where, | ||
int | type, | ||
int | value, | ||
struct varray * | varray | ||
) |
Set values in 'varray' to 'value' from DB (where statement)
I category of object of given type is in categories selected from DB based on where statement (given without where). type may be either: GV_AREA or: GV_POINT | GV_LINE | GV_BOUNDARY | GV_CENTROID
Array is not reset to zero before, but old values (if any > 0) are overwritten. Array must be initialised by Vect_new_varray() call.
Map | vector map | |
field | layer number | |
where | where statement | |
type | feature type | |
value | value to set up | |
[out] | varray | varray structure to modify |
Definition at line 249 of file array.c.
Referenced by NetA_initialise_varray().
int Vect_set_zone | ( | struct Map_info * | Map, |
int | zone | ||
) |
Set projection zone in map header.
Map | pointer to Map_info structure |
zone | projection zone |
Definition at line 466 of file vector/Vlib/header.c.
References Map_info::head, and dig_head::plani_zone.
Referenced by Vect__init_head(), Vect__read_head(), Vect_copy_head_data(), and Vect_read_ascii_head().
int Vect_sfa_check_line_type | ( | const struct line_pnts * | Points, |
int | type, | ||
SF_FeatureType | sftype, | ||
int | with_z | ||
) |
Check SF type.
E.g. if type is GV_LINE with two or more segments and the start node is identical with the end node, and sftype is SF_LINEARRING, functions returns 1, otherwise 0.
Points | pointer to line_pnts structure |
type | feature type (GV_POINT, GV_LINE, ...) |
sftype | SF type to be checked (SF_POINT, SF_LINE, ...) |
with_z | non-zero value for 3D data |
Definition at line 113 of file simple_features.c.
SF_FeatureType Vect_sfa_get_line_type | ( | const struct line_pnts * | Points, |
int | type, | ||
int | with_z | ||
) |
Get SF type of given vector feature.
List of supported feature types:
Points | pointer to line_pnts structure |
type | feature type (see supported types above) |
with_z | WITH_Z for 3D data |
Definition at line 64 of file simple_features.c.
int Vect_sfa_get_num_features | ( | const struct Map_info * | Map | ) |
Get number of simple features.
For native format or PostGIS Topology returns -1
Map | vector map |
Definition at line 293 of file simple_features.c.
References _, Format_info_pg::conn, DB_SQL_MAX, Map_info::fInfo, Map_info::format, G_fatal_error(), G_warning(), GV_FORMAT_OGR, GV_FORMAT_OGR_DIRECT, GV_FORMAT_POSTGIS, Format_info_ogr::layer, Format_info::ogr, Format_info::pg, Format_info_pg::schema_name, Format_info_pg::table_name, Format_info_pg::toposchema_name, TRUE, Vect__execute_get_value_pg(), and Vect_get_full_name().
int Vect_sfa_get_type | ( | SF_FeatureType | sftype | ) |
Get relevant GV type.
Map | pointer to Map_info structure |
type | SF geometry type (SF_POINT, SF_LINESTRING, ...) |
Definition at line 78 of file simple_features.c.
References GV_BOUNDARY, GV_LINE, GV_POINT, SF_LINEARRING, SF_LINESTRING, SF_LINESTRING25D, SF_POINT, SF_POINT25D, SF_POLYGON, and SF_POLYGON25D.
int Vect_sfa_is_line_closed | ( | const struct line_pnts * | Points, |
int | type, | ||
int | with_z | ||
) |
Check if feature is closed.
Points | pointer to line_pnts structure |
type | feature type (GV_LINE or GV_BOUNDARY) |
Definition at line 265 of file simple_features.c.
int Vect_sfa_is_line_simple | ( | const struct line_pnts * | Points, |
int | type, | ||
int | with_z | ||
) |
Check if feature is simple.
Points | pointer to line_pnts structure |
type | feature type (GV_POINT, GV_LINE, ...) |
Definition at line 244 of file simple_features.c.
int Vect_sfa_line_astext | ( | const struct line_pnts * | Points, |
int | type, | ||
int | with_z, | ||
int | precision, | ||
FILE * | file | ||
) |
Export geometry to Well-Known Text.
Points | pointer to line_pnts structure | |
type | feature type | |
with_z | non-zero value for 3D data | |
precision | floating number precision | |
[out] | file | file where to write the output |
Definition at line 187 of file simple_features.c.
int Vect_sfa_line_dimension | ( | int | type | ) |
Get geometry dimension.
Points | pointer to line_pnts structure |
type | feature type (GV_POINT, GV_LINE, ...) |
Definition at line 130 of file simple_features.c.
char* Vect_sfa_line_geometry_type | ( | const struct line_pnts * | Points, |
int | type | ||
) |
Get geometry type (string)
Supported types:
Note: Allocated string should be freed by G_free().
Points | pointer to line_pnts structure (feature geometry) |
type | feature type (see supported types above) |
Definition at line 159 of file simple_features.c.
int Vect_sidx_dump | ( | const struct Map_info * | Map, |
FILE * | out | ||
) |
Dump spatial index to file.
Map | vector map |
out | file for output (stdout/stderr for example) |
Definition at line 1300 of file build.c.
References dig_dump_spidx(), Map_info::plus, Plus_head::Spidx_built, and Vect_build_sidx_from_topo().
int Vect_snap_line | ( | struct Map_info * | Map, |
struct ilist * | reflist, | ||
struct line_pnts * | Points, | ||
double | thresh, | ||
int | with_z, | ||
int * | nsnapped, | ||
int * | ncreated | ||
) |
Snap a line to reference lines in Map with threshold.
3D snapping is supported. The line to snap and the reference lines can but do not need to be in different vector maps.
Vect_snap_line() uses less memory, but is slower than Vect_snap_lines_list()
For details on snapping, see Vect_snap_lines_list()
[in] | Map | input map with reference lines |
[in] | reflist | list of reference lines |
[in,out] | Points | line points to snap |
[in] | thresh | threshold in which to snap vertices |
[in] | with_z | 2D or 3D snapping |
[in,out] | nsnapped | number of snapped vertices |
[in,out] | ncreated | number of new vertices (on segments) |
Definition at line 961 of file Vlib/snap.c.
Snap lines in vector map to existing vertex in threshold.
For details see Vect_snap_lines_list()
[in] | Map | input map where vertices will be snapped |
[in] | type | type of lines to snap |
[in] | thresh | threshold in which snap vertices |
[out] | Err | vector map where lines representing snap are written or NULL |
Definition at line 907 of file Vlib/snap.c.
void Vect_snap_lines_list | ( | struct Map_info * | Map, |
const struct ilist * | List_lines, | ||
double | thresh, | ||
struct Map_info * | Err | ||
) |
Snap selected lines to existing vertex in threshold.
Snap selected lines to existing vertices of other selected lines. 3D snapping is not supported.
Lines showing how vertices were snapped may be optionally written to error map. Input map must be opened on level 2 for update at least on GV_BUILD_BASE.
As mentioned above, lines are not necessarily snapped to nearest vertex! For example:
| | 1 line 3 is snapped to line 1, | then line 2 is not snapped to common node at lines 1 and 3, because it is already outside of threshold ----------- 3
| | 2 |
The algorithm selects anchor vertices and snaps non-anchor vertices to these anchors. The distance between anchor vertices is always > threshold. If there is more than one anchor vertex within threshold around a non-anchor vertex, this vertex is snapped to the nearest anchor vertex within threshold.
Map | input map where vertices will be snapped | |
List_lines | list of lines to snap | |
thresh | threshold in which snap vertices | |
[out] | Err | vector map where lines representing snap are written or NULL |
Definition at line 170 of file Vlib/snap.c.
References getenv().
void Vect_spatial_index_add_item | ( | struct spatial_index * | si, |
int | id, | ||
const struct bound_box * | box | ||
) |
Add a new item to spatial index structure.
[in,out] | si | pointer to spatial index structure |
id | item identifier | |
box | pointer to item bounding box |
Definition at line 62 of file vector/Vlib/select.c.
References bound_box::B, RTree_Rect::boundary, bound_box::E, G_debug(), G_malloc, bound_box::N, RTree::nsides_alloc, RTreeInsertRect(), bound_box::S, spatial_index::si_tree, bound_box::T, and bound_box::W.
void Vect_spatial_index_del_item | ( | struct spatial_index * | si, |
int | id, | ||
const struct bound_box * | box | ||
) |
Delete item from spatial index structure.
[in,out] | si | pointer to spatial index structure |
id | item identifier |
Definition at line 92 of file vector/Vlib/select.c.
References _, bound_box::B, RTree_Rect::boundary, bound_box::E, G_debug(), G_fatal_error(), G_malloc, bound_box::N, RTree::nsides_alloc, RTreeDeleteRect(), bound_box::S, spatial_index::si_tree, bound_box::T, and bound_box::W.
void Vect_spatial_index_destroy | ( | struct spatial_index * | si | ) |
Destroy existing spatial index.
Vect_spatial_index_init() must be call before new use.
si | pointer to spatial index structure |
Definition at line 46 of file vector/Vlib/select.c.
References G_debug(), RTreeDestroyTree(), and spatial_index::si_tree.
void Vect_spatial_index_init | ( | struct spatial_index * | si, |
int | with_z | ||
) |
Initialize spatial index structure.
si | pointer to spatial index structure |
Definition at line 30 of file vector/Vlib/select.c.
References G_debug(), RTreeCreateTree(), and spatial_index::si_tree.
int Vect_spatial_index_select | ( | const struct spatial_index * | si, |
const struct bound_box * | box, | ||
struct ilist * | list | ||
) |
Select items by bounding box to list.
si | pointer to spatial index structure | |
box | bounding box | |
[out] | list | pointer to list where selected items are stored |
Definition at line 136 of file vector/Vlib/select.c.
References bound_box::B, RTree_Rect::boundary, bound_box::E, G_malloc, bound_box::N, RTree::nsides_alloc, RTreeSearch(), bound_box::S, spatial_index::si_tree, bound_box::T, Vect_reset_list(), and bound_box::W.
int Vect_str_to_cat_list | ( | const char * | str, |
struct cat_list * | list | ||
) |
Converts string of categories and cat ranges separated by commas to cat_list.
5,6,7 3-9 2,3,5-9,20
cat_list->field = 0 cat_list->n_ranges = 4 cat_list->min = {2, 3, 5, 20} cat_list->max = {2, 3, 9, 20}
str | category list as a string | |
[in,out] | list | pointer to cat_list structure |
Definition at line 367 of file vector/Vlib/cats.c.
char* Vect_subst_var | ( | const char * | in, |
const struct Map_info * | Map | ||
) |
Substitute variable in string.
in | current string |
Map | pointer to Map_info structure |
Definition at line 1003 of file field.c.
Referenced by Vect_get_dblink().
int Vect_tin_get_z | ( | struct Map_info * | Map, |
double | tx, | ||
double | ty, | ||
double * | tz, | ||
double * | angle, | ||
double * | slope | ||
) |
Extensive tests for correct topology.
Map | vector map | |
[out] | Err | vector map where errors will be written or NULL |
int Vect_topo_dump | ( | const struct Map_info * | Map, |
FILE * | out | ||
) |
int Vect_val_in_boxlist | ( | const struct boxlist * | list, |
int | id | ||
) |
Find a given item in the list.
list | pointer to boxlist structure |
id | value of item |
Definition at line 415 of file vector/Vlib/list.c.
References boxlist::id, boxlist::n_values, and NULL.
int Vect_val_in_list | ( | const struct ilist * | list, |
int | val | ||
) |
Find a given item in the list.
list | pointer to ilist structure |
val | value of item |
Definition at line 197 of file vector/Vlib/list.c.
References ilist::n_values, NULL, and ilist::value.
int Vect_write_ascii | ( | FILE * | ascii, |
FILE * | att, | ||
struct Map_info * | Map, | ||
int | ver, | ||
int | format, | ||
int | dp, | ||
char * | fs, | ||
int | region_flag, | ||
int | type, | ||
int | field, | ||
const struct cat_list * | Clist, | ||
const char * | where, | ||
const char ** | column_names, | ||
int | header | ||
) |
Write data to GRASS ASCII vector format.
Prints message if some features without category are skipped.
[out] | ascii | pointer to the output ASCII file |
[out] | att | att file (< version 5 only) |
Map | pointer to Map_info structure | |
ver | version number 4 or 5 | |
format | format GV_ASCII_FORMAT_POINT or GV_ASCII_FORMAT_STD | |
dp | number of significant digits | |
fs | field separator | |
region_flag | check region | |
type | feature type filter | |
field | field number | |
Clist | list of categories to filter features or NULL | |
where | SQL select where statement to filter features or NULL | |
column_names | array of columns to be included to the output or NULL "*" as the first item in the array indicates all columns | |
header | TRUE to print also header |
void Vect_write_ascii_head | ( | FILE * | dascii, |
struct Map_info * | Map | ||
) |
Write data to GRASS ASCII vector format.
[out] | dascii | pointer to the output ASCII file |
Map | pointer to Map_info structure |
Definition at line 917 of file ascii.c.
References HOST_NEWLINE, Vect_get_comment(), Vect_get_date(), Vect_get_map_date(), Vect_get_map_name(), Vect_get_organization(), Vect_get_person(), Vect_get_scale(), Vect_get_thresh(), and Vect_get_zone().
void Vect_write_colors | ( | const char * | name, |
const char * | mapset, | ||
struct Colors * | colors | ||
) |
Write color table for vector map.
The color table is written for the vector map name in the specified mapset from the colors structure.
The colors structure must be created properly, i.e., Rast_init_colors() to initialize the structure and Rast_add_c_color_rule() to set the category colors. These routines are called by higher level routines which read or create entire color tables, such as Rast_read_colors() or Rast_make_ramp_colors().
Note: The calling sequence for this function deserves special attention. The mapset parameter seems to imply that it is possible to overwrite the color table for a vector map which is in another mapset. However, this is not what actually happens. It is very useful for users to create their own color tables for vector maps in other mapsets, but without overwriting other users' color tables for the same raster map. If mapset is the current mapset, then the color file for name will be overwritten by the new color table. But if mapset is not the current mapset, then the color table is actually written in the current mapset under the colr2
element as: vector/name/colr2
.
The rules are written out using floating-point format, removing trailing zeros (possibly producing integers). The flag marking the colors as floating-point is not written.
If the environment variable FORCE_GRASS3_COLORS is set (to anything at all) then the output format is 3.0, even if the structure contains 4.0 rules. This allows users to create 3.0 color files for export to sites which don't yet have 4.0
name | vector map name |
mapset | mapset name |
colors | pointer to structure Colors which holds color info |
Definition at line 61 of file vector/Vlib/color_write.c.
int Vect_write_dblinks | ( | struct Map_info * | Map | ) |
Write dblinks to file.
Map | pointer to Map_info structure |
Definition at line 951 of file field.c.
References _, field_info::database, Map_info::dblnk, field_info::driver, dblinks::field, Map_info::format, G_debug(), G_fopen_new(), G_warning(), GPATH_MAX, GV_DBLN_ELEMENT, GV_FORMAT_NATIVE, field_info::key, Map_info::mapset, dblinks::n_fields, field_info::name, Map_info::name, NULL, field_info::number, field_info::table, Vect__get_path(), and Vect_get_name().
Referenced by V1_close_nat(), Vect_map_del_dblink(), and Vect_set_db_updated().
int Vect_write_header | ( | const struct Map_info * | Map | ) |
Write vector map header to map head file.
Map | pointer to Map_info structure |
Definition at line 63 of file vector/Vlib/header.c.
References Vect__write_head().
off_t Vect_write_line | ( | struct Map_info * | Map, |
int | type, | ||
const struct line_pnts * | points, | ||
const struct line_cats * | cats | ||
) |
Writes a new feature.
New feature is written to the end of file (in the case of native format). Topological level is not required.
A warning is printed on error.
Map | pointer to Map_info structure |
type | feature type (see dig_defines.h for supported types) |
points | pointer to line_pnts structure (feature geometry) |
cats | pointer to line_cats structure (feature categories) |
Definition at line 178 of file vector/Vlib/write.c.