navit  0.5.1-trunk
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups
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
 A mapset. More...
 
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)
 
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

int mapset_add_attr ( struct mapset ms,
struct attr attr 
)
void mapset_attr_iter_destroy ( struct attr_iter iter)
struct attr_iter* mapset_attr_iter_new ( void  )
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().

struct mapset* mapset_dup ( struct mapset ms)

References mapset::maps, and mapset_new().

int mapset_get_attr ( struct mapset ms,
enum attr_type  type,
struct attr attr,
struct attr_iter iter 
)
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 gui_internal_cmd_results_to_map(), Java_org_navitproject_navit_NavitGraphics_CallbackMessageChannel(), navit_cmd_map_add_curr_pos(), and navit_cmd_map_item_set_attr().

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().

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

Gets the next map from a mapset handle.

If you set active to true, this function will not return any maps that have the attr_active attribute associated with them and set to false.

Parameters
mshThe mapset handle to get the next map of
activeSet to true to only get active maps (See description)
Returns
The next map

References 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_get_attr(), navit_init(), navit_map_progress(), osd_route_guard_init(), osd_speed_cam_draw(), route_find_nearest_street(), route_graph_build_next_map(), and tracking_doupdate_lines().

struct mapset_handle* mapset_open ( struct mapset ms)

Returns a new handle for a mapset.

This returns a new handle for an existing mapset. The new handle points to the first map in the set.

Parameters
msThe mapset to get a handle of
Returns
The new mapset handle

References mapset_handle::l, and mapset::maps.

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_get_attr(), navit_init(), navit_map_progress(), osd_route_guard_init(), osd_speed_cam_draw(), route_find_nearest_street(), route_graph_build(), and tracking_doupdate_lines().

int mapset_remove_attr ( struct mapset ms,
struct attr attr 
)
void mapset_search_destroy ( struct mapset_search this_)

Destroys a mapset search.

Parameters
thisThe mapset search to be destroyed

References map_search_destroy(), and mapset_search::ms.

Referenced by search_list_get_result(), and search_list_search_free().

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().

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

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

Referenced by mapset_new(), and object_func_lookup().