navit  0.5.3-trunk
mapset.c File Reference

Contains code used for loading more than one map. More...

#include <string.h>
#include <glib.h>
#include <glib/gprintf.h>
#include "debug.h"
#include "item.h"
#include "mapset.h"
#include "projection.h"
#include "map.h"
#include "xmlconfig.h"

Data Structures

struct  mapset
 
struct  attr_iter
 
struct  mapset_handle
 Handle for a mapset in use. More...
 
struct  mapset_search
 Holds information about a search in a mapset. More...
 

Functions

struct mapsetmapset_new (struct attr *parent, struct attr **attrs)
 Creates a new, empty mapset. More...
 
struct mapsetmapset_dup (struct mapset *ms)
 
struct attr_itermapset_attr_iter_new (void *unused)
 
void mapset_attr_iter_destroy (struct attr_iter *iter)
 
int mapset_add_attr (struct mapset *ms, struct attr *attr)
 Adds a map to a mapset. More...
 
int mapset_remove_attr (struct mapset *ms, struct attr *attr)
 
int mapset_get_attr (struct mapset *ms, enum attr_type type, struct attr *attr, struct attr_iter *iter)
 
void mapset_destroy (struct mapset *ms)
 Destroys a mapset. More...
 
struct mapset_handlemapset_open (struct mapset *ms)
 Returns a new handle for a mapset. More...
 
struct mapmapset_next (struct mapset_handle *msh, int active)
 Gets the next map from a mapset handle. More...
 
struct mapmapset_get_map_by_name (struct mapset *ms, const char *map_name)
 Gets a map from the mapset by name. More...
 
void mapset_close (struct mapset_handle *msh)
 Closes a mapset handle after it is no longer used. More...
 
struct mapset_searchmapset_search_new (struct mapset *ms, struct item *item, struct attr *search_attr, int partial)
 Starts a search on a mapset. More...
 
struct itemmapset_search_get_item (struct mapset_search *this_)
 Returns the next found item from a mapset search. More...
 
void mapset_search_destroy (struct mapset_search *this_)
 Destroys a mapset search. More...
 

Variables

struct object_func mapset_func
 

Detailed Description

Contains code used for loading more than one map.

Navit, a modular navigation system. Copyright (C) 2005-2008 Navit Team

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

The code in this file introduces "mapsets", which are collections of several maps. This enables navit to operate on more than one map at once. See map.c / map.h to learn how maps are handled.

Function Documentation

◆ mapset_add_attr()

int mapset_add_attr ( struct mapset ms,
struct attr attr 
)

◆ mapset_attr_iter_destroy()

void mapset_attr_iter_destroy ( struct attr_iter iter)

◆ mapset_attr_iter_new()

struct attr_iter* mapset_attr_iter_new ( void *  unused)

◆ mapset_close()

◆ mapset_destroy()

void mapset_destroy ( struct mapset ms)

Destroys a mapset.

This destroys a mapset. Please note that it does not touch the contained maps in any way.

Parameters
msThe mapset to be destroyed

References attr_list_free(), and mapset::maps.

Referenced by mapset_destroy_py().

◆ mapset_dup()

struct mapset* mapset_dup ( struct mapset ms)

References mapset::maps, and mapset_new().

◆ mapset_get_attr()

int mapset_get_attr ( struct mapset ms,
enum attr_type  type,
struct attr attr,
struct attr_iter iter 
)

◆ mapset_get_map_by_name()

struct map* mapset_get_map_by_name ( struct mapset ms,
const char *  map_name 
)

Gets a map from the mapset by name.

Parameters
msThe map
map_namethe map name used by the search
Returns
The next map

References map_get_attr(), mapset_close(), mapset_next(), mapset_open(), attr::str, and attr::u.

Referenced by Java_org_navitproject_navit_NavitCallbackHandler_callbackMessageChannel(), navit_cmd_map_add_curr_pos(), navit_cmd_map_item_set_attr(), and navit_get_search_results_map().

◆ mapset_new()

struct mapset* mapset_new ( struct attr parent,
struct attr **  attrs 
)

Creates a new, empty mapset.

Returns
The new mapset

References attr_list_dup(), mapset_func, and navit_object_ref().

Referenced by mapset_dup(), and mapset_new_py().

◆ mapset_next()

struct map* mapset_next ( struct mapset_handle msh,
int  active 
)

Gets the next map from a mapset handle.

The active argument governs whether (and how) to limit the search to active maps:

Passing 0 causes this function to cycle through all maps, whether active or not.

Passing a value of 2 will return only maps which have the attr_route_active attribute set to true.

Passing a value of 3 will return only maps which have the attr_search_active attribute set to true.

Passing any other nonzero value will return only maps which have the attr_active attribute set to true, or not set at all.

Parameters
mshThe mapset handle to get the next map of
activeWhether to cycle only through active maps (see description)
Returns
The next map

References active, mapset_handle::l, map_get_attr(), attr::num, and attr::u.

Referenced by NGQPoint::_coordName(), do_draw(), Backend::get_pois(), NGQPoint::getPOI(), gui_internal_cmd2_route_height_profile(), gui_internal_cmd_pois(), map_route_occluded_get_buildings(), mapset_get_map_by_name(), model_poi(), navit_destroy(), navit_get_attr(), navit_init(), navit_map_progress(), osd_route_guard_init(), osd_speed_cam_draw(), route_find_nearest_street(), route_graph_build_next_map(), tracking_doupdate_lines(), traffic_location_get_matching_points(), traffic_location_populate_route_graph(), and traffic_message_restore_segments().

◆ mapset_open()

◆ mapset_remove_attr()

int mapset_remove_attr ( struct mapset ms,
struct attr attr 
)

◆ mapset_search_destroy()

void mapset_search_destroy ( struct mapset_search this_)

Destroys a mapset search.

Parameters
thisThe mapset search to be destroyed

Referenced by search_list_get_result(), and search_list_search_free().

◆ mapset_search_get_item()

struct item* mapset_search_get_item ( struct mapset_search this_)

Returns the next found item from a mapset search.

This function returns the next item from a mapset search or NULL if there are no more items found. It automatically iterates through all the maps in the mapset. Please note that maps which have the attr_active attribute associated with them and set to false are not searched.

Parameters
thisThe mapset search to return an item from
Returns
The next found item or NULL if there are no more items found

References mapset_search::item, mapset_search::map, map_get_attr(), map_search_destroy(), map_search_get_item(), map_search_new(), mapset::maps, mapset_search::mapset, mapset_search::ms, attr::num, mapset_search::partial, mapset_search::search_attr, attr::type, and attr::u.

Referenced by search_list_get_result().

◆ mapset_search_new()

struct mapset_search* mapset_search_new ( struct mapset ms,
struct item item,
struct attr search_attr,
int  partial 
)

Starts a search on a mapset.

This function starts a search on a mapset. What attributes one can search for depends on the map plugin. See the description of map_search_new() in map.c for details.

If you enable partial matches bear in mind that the search matches only the begin of the strings - a search for a street named "street" would match to "streetfoo", but not to "somestreet". Search is case insensitive.

The item passed to this function specifies a "superior item" to "search within" - e.g. a town in which we want to search for a street, or a country in which to search for a town.

Parameters
msThe mapset that should be searched
itemSpecifies a superior item to "search within" (see description)
search_attrAttribute specifying what to search for. See description.
partialSet this to true to also have partial matches. See description.
Returns
A new mapset search struct for this search

References dbg, item, lvl_debug, mapset_search::ms, mapset_search::partial, and mapset_search::search_attr.

Referenced by search_list_get_result().

Variable Documentation

◆ mapset_func

struct object_func mapset_func
Initial value:
= {
attr_mapset,
}
struct mapset * mapset_new(struct attr *parent, struct attr **attrs)
Creates a new, empty mapset.
Definition: mapset.c:53
int mapset_add_attr(struct mapset *ms, struct attr *attr)
Adds a map to a mapset.
Definition: mapset.c:86
void mapset_attr_iter_destroy(struct attr_iter *iter)
Definition: mapset.c:76
void mapset_destroy(struct mapset *ms)
Destroys a mapset.
Definition: mapset.c:138
struct attr_iter * mapset_attr_iter_new(void *unused)
Definition: mapset.c:72
int mapset_remove_attr(struct mapset *ms, struct attr *attr)
Definition: mapset.c:97
int mapset_get_attr(struct mapset *ms, enum attr_type type, struct attr *attr, struct attr_iter *iter)
Definition: mapset.c:108
struct mapset * mapset_dup(struct mapset *ms)
Definition: mapset.c:64
void * navit_object_unref(struct navit_object *obj)
Definition: xmlconfig.c:1313
struct navit_object * navit_object_ref(struct navit_object *obj)
Definition: xmlconfig.c:1307
void(* object_func_iter_destroy)(struct attr_iter *)
Definition: xmlconfig.h:57
void *(* object_func_new)(struct attr *parent, struct attr **attrs)
Definition: xmlconfig.h:54
int(* object_func_remove_attr)(void *, struct attr *attr)
Definition: xmlconfig.h:60
void *(* object_func_ref)(void *)
Definition: xmlconfig.h:64
struct attr_iter *(* object_func_iter_new)(void *)
Definition: xmlconfig.h:56
int(* object_func_init)(void *)
Definition: xmlconfig.h:61
void *(* object_func_dup)(void *)
Definition: xmlconfig.h:63
int(* object_func_add_attr)(void *, struct attr *attr)
Definition: xmlconfig.h:59
void(* object_func_destroy)(void *)
Definition: xmlconfig.h:62
int(* object_func_set_attr)(void *, struct attr *attr)
Definition: xmlconfig.h:58
int(* object_func_get_attr)(void *, enum attr_type type, struct attr *attr, struct attr_iter *iter)
Definition: xmlconfig.h:55
void *(* object_func_unref)(void *)
Definition: xmlconfig.h:65

Referenced by mapset_new(), and object_func_lookup().