SqliteMap

class leuvenmapmatching.map.sqlite.SqliteMap(name, use_latlon=True, crs_lonlat=None, crs_xy=None, dir=None, deserializing=False)[source]

Store a map as a SQLite instance.

This class supports:

  • Indexing using rtrees to allow for fast searching of points on the map. When using the rtree index, only integer numbers are allowed as node labels.
  • Serializing to write and read from files.
  • Projecting points to a different frame (e.g. GPS to Lambert)
Parameters:
  • name – Name of database file
  • use_latlon – The locations represent latitude-longitude pairs, otherwise y-x coordinates are assumed.
  • crs_lonlat – Coordinate reference system for the latitude-longitude coordinates.
  • crs_xy – Coordiante reference system for the y-x coordinates.
  • dir – Directory where to serialize to. If not given, a temporary location will be used.
  • deserializing – Internal variable to indicate that the object is being build from a file.
add_edge(node_a, node_b, loc_a=None, loc_b=None, speed=None, edge_type=None, path=None, pathnum=None, no_index=False, no_commit=False)[source]

Add new edge to the map.

Parameters:
  • node_a – Label for the node that is the start of the edge
  • node_b – Label for the node that is the end of the edge
  • no_commit – Do not commit to database (remember to commit later)
add_edges(edges, no_index=False)[source]

Add list of nodes to database.

Parameters:edges – List[Tuple[node_key, node_key]] or List[Tuple[node_key, node_key, path_key, int]]
add_node(node, loc, ignore_doubles=False, no_index=False, no_commit=False)[source]

Add new node to the map.

Parameters:
  • node – label
  • loc – (lat, lon) or (y, x)
  • ignore_doubles – When trying to add the same node, ignore it
  • no_commit – Do not commit to database (remember to commit later)
add_nodes(nodes)[source]

Add list of nodes to database.

Parameters:nodes – List[Tuple[node_key, Tuple[lat, lon]]]
all_edges(bb=None)[source]

Return all edges.

Parameters:bb – Bounding box
Returns:(key_a, loc_a, nbr, loc_b)
all_nodes(bb=None)[source]

Return all nodes.

Parameters:bb – Bounding box (minY, minX, maxY, maxX)
Returns:
bb()[source]

Bounding box.

Returns:(lat_min, lon_min, lat_max, lon_max) or (y_min, x_min, y_max, x_max)
edges_closeto(loc, max_dist=None, max_elmt=None)[source]

Return all nodes that are on an edge that is close to the given location.

Parameters:
  • loc – Location
  • max_dist – Maximal distance from the location
  • max_elmt – Return only the most nearby nodes
edges_nbrto(edge)[source]

Return all edges that are linked to edge.

Defaults to nodes_nbrto.

Parameters:edge – Edge identifier
Returns:list[tuple[label1, label2, loc1, loc2]]
find_duplicates(func=None)[source]

Find entries with identical locations.

classmethod from_file(filename)[source]

Read from an existing file.

labels()[source]

All labels.

node_coordinates(node_key)[source]

Get the coordinates of the given node.

Parameters:node_key – Node label/key
Returns:(lat, lon)
nodes_closeto(loc, max_dist=None, max_elmt=None)[source]

Return all nodes close to the given location.

Parameters:
  • loc – Location
  • max_dist – Maximal distance from the location
  • max_elmt – Return only the most nearby nodes
nodes_nbrto(node)[source]

Return all nodes that are linked to node.

Parameters:node – Node identifier
Returns:list[tuple[label, loc]]
size()[source]

Number of nodes.

to_xy(name=None)[source]

Create a map that uses a projected XY representation on which Euclidean distances can be used.