GRASS GIS 8 Programmer's Manual
8.5.0dev(2024)-d6dec75dd4
|
Network Analysis library - timetables. More...
#include <stdio.h>
#include <stdlib.h>
#include <grass/gis.h>
#include <grass/vector.h>
#include <grass/dbmi.h>
#include <grass/glocale.h>
#include <grass/dgl/graph.h>
#include <grass/neta.h>
Go to the source code of this file.
Functions | |
int | NetA_init_distinct (dbDriver *driver, dbString *sql, int **lengths, int **ids) |
Get number of distinct elements. More... | |
int | NetA_init_timetable_from_db (struct Map_info *In, int route_layer, int walk_layer, char *route_id, char *times, char *to_stop, char *walk_length, neta_timetable *timetable, int **route_ids, int **stop_ids) |
Initialises timetable from a database. More... | |
void | NetA_update_dijkstra (int old_conns, int new_conns, int to, int new_dst, int v, int route, int rows UNUSED, int update, neta_timetable_result *result, dglHeap_s *heap) |
Update Dijkstra structures. More... | |
int | NetA_timetable_shortest_path (neta_timetable *timetable, int from_stop, int to_stop, int start_time, int min_change, int max_changes, int walking_change, neta_timetable_result *result) |
Computes the earliest arrival time. More... | |
int | NetA_timetable_get_route_time (neta_timetable *timetable, int stop, int route) |
Get time. More... | |
void | NetA_timetable_result_release (neta_timetable_result *result) |
Free neta_timetable_result structure. More... | |
Network Analysis library - timetables.
Shortest path using timetables.
(C) 2009-2010 by Daniel Bundala, and the GRASS Development Team
This program is free software under the GNU General Public License (>=v2). Read the file COPYING that comes with GRASS for details.
Definition in file timetables.c.
Get number of distinct elements.
driver | DB driver | |
sql | SQl string | |
[out] | list | of lengths |
[out] | list | of ids |
Definition at line 36 of file timetables.c.
References count.
int NetA_init_timetable_from_db | ( | struct Map_info * | In, |
int | route_layer, | ||
int | walk_layer, | ||
char * | route_id, | ||
char * | times, | ||
char * | to_stop, | ||
char * | walk_length, | ||
neta_timetable * | timetable, | ||
int ** | route_ids, | ||
int ** | stop_ids | ||
) |
Initialises timetable from a database.
In | pointer to Map_info structure |
route_layer | layer number of routes |
walk_layer | layer number of walkers |
route_id | id of route |
times | list of timestamps |
to_stop | ? |
walk_length | walk length as string |
timetable | pointer to neta_timetable |
route_ids | list of route ids |
stop_ids | list of stop ids |
Definition at line 116 of file timetables.c.
int NetA_timetable_get_route_time | ( | neta_timetable * | timetable, |
int | stop, | ||
int | route | ||
) |
Get time.
Get time when route "route" arrives at stop "stop" or -1.
timetable | pointer to neta_timetable structure |
stop | 'stop' node id |
route | route id |
Definition at line 530 of file timetables.c.
References neta_timetable::route_length, neta_timetable::route_stops, and neta_timetable::route_times.
void NetA_timetable_result_release | ( | neta_timetable_result * | result | ) |
Free neta_timetable_result structure.
result | pointer to neta_timetable_result structure |
Definition at line 546 of file timetables.c.
References neta_timetable_result::dst, G_free(), neta_timetable_result::prev_route, neta_timetable_result::prev_stop, and neta_timetable_result::rows.
int NetA_timetable_shortest_path | ( | neta_timetable * | timetable, |
int | from_stop, | ||
int | to_stop, | ||
int | start_time, | ||
int | min_change, | ||
int | max_changes, | ||
int | walking_change, | ||
neta_timetable_result * | result | ||
) |
Computes the earliest arrival time.
Computes the earliest arrival time to to_stop from from_stop starting at start_time, or -1 if no path exists
timetable | pointer to neta_timetable structure | |
from_stop | 'from' node | |
to_stop | 'to' stop | |
start_time | start timestamp | |
min_change | ? | |
max_changes | ? | |
walking_change | ? | |
[out] | result | pointer to neta_timetable_result |
Definition at line 388 of file timetables.c.
References _, dglHeapInit(), neta_timetable_result::dst, G_calloc, G_warning(), neta_timetable_result::prev_conn, neta_timetable_result::prev_route, neta_timetable_result::prev_stop, _dglHeapData::pv, neta_timetable_result::routes, neta_timetable_result::rows, and neta_timetable::stops.
void NetA_update_dijkstra | ( | int | old_conns, |
int | new_conns, | ||
int | to, | ||
int | new_dst, | ||
int | v, | ||
int | route, | ||
int rows | UNUSED, | ||
int | update, | ||
neta_timetable_result * | result, | ||
dglHeap_s * | heap | ||
) |
Update Dijkstra structures.
olc_conns | old connection | |
new_conns | new connection | |
to | old 'to' node | |
new_dst | new 'to' node | |
v | ? | |
route | id of route | |
rows | ? (unused) | |
update | ? | |
[out] | result | pointer to neta_timetable_result structure |
heap | ? |
Definition at line 351 of file timetables.c.
References neta_timetable_result::dst, neta_timetable_result::prev_conn, neta_timetable_result::prev_route, neta_timetable_result::prev_stop, and _dglHeapData::pv.