Release Tizen2.0 beta
[framework/location/libslp-location.git] / location / include / location-map-types.h
1 /*
2  * libslp-location
3  *
4  * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: Youngae Kang <youngae.kang@samsung.com>, Yunhan Kim <yhan.kim@samsung.com>,
7  *          Genie Kim <daejins.kim@samsung.com>, Minjune Kim <sena06.kim@samsung.com>
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */
21
22 #ifndef __LOCATION_MAP_TYPES_H__
23 #define __LOCATION_MAP_TYPES_H__
24
25 #include <glib.h>
26 #include <glib-object.h>
27 #include <location-types.h>
28
29 G_BEGIN_DECLS
30
31 /**
32  * @file location-map-types.h
33  * @brief This file contains the Location related structure, enumeration, and asynchronous function definitions.
34  * @addtogroup LocationFW
35  * @{
36  * @defgroup LocationMapTypes Location Map Types
37  * @brief This sub module provides structure, enumeration, and asynchronous function definitions.
38  * @addtogroup LocationMapTypes
39  * @{
40  */
41
42 typedef enum {
43         MAP_SERVICE_PREF_LANGUAGE,
44         MAP_SERVICE_PREF_DISTANCE_UNIT,
45
46         MAP_SERVICE_PREF_PROPERTY,
47
48         MAP_SERVICE_GEOCODE_TYPE,
49         MAP_SERVICE_REVERSE_GEOCODE_TYPE,
50
51         MAP_SERVICE_POI_TYPE,
52         MAP_SERVICE_POI_SEARCH_BY_ADDRESS,
53         MAP_SERVICE_POI_SEARCH_BY_FREEFORM_ADDRESS,
54         MAP_SERVICE_POI_SEARCH_BY_CIRCLE_BOUNDARY,
55         MAP_SERVICE_POI_SEARCH_BY_RECT_BOUNDARY,
56         MAP_SERVICE_POI_SEARCH_BY_POLYGON_BOUNDARY,
57         MAP_SERVICE_POI_PREF_SORT_BY,
58         MAP_SERVICE_POI_PREF_PROPERTY,
59         MAP_SERVICE_POI_FILTER,
60         MAP_SERVICE_POI_FILTER_CATEGORY,
61
62         MAP_SERVICE_ROUTE_REQUEST_FREEFORM_ADDR_TO_AVOID,
63         MAP_SERVICE_ROUTE_REQUEST_STRUCTED_ADDR_TO_AVOID,
64         MAP_SERVICE_ROUTE_REQUEST_CIRCLE_AREA_TO_AVOID,
65         MAP_SERVICE_ROUTE_REQUEST_RECT_AREA_TO_AVOID,
66         MAP_SERVICE_ROUTE_REQUEST_POLYGON_AREA_TO_AVOID,
67         MAP_SERVICE_ROUTE_REQUEST_FEATURE_TO_AVOID,
68         MAP_SERVICE_ROUTE_PREF_TYPE,
69         MAP_SERVICE_ROUTE_PREF_TRANSPORT_MODE,
70         MAP_SERVICE_ROUTE_PREF_GEOMETRY_BOUNDING_BOX,
71         MAP_SERVICE_ROUTE_PREF_GEOMETRY_RETRIEVAL,
72         MAP_SERVICE_ROUTE_PREF_INSTRUCTION_GEOMETRY,
73         MAP_SERVICE_ROUTE_PREF_INSTRUCTION_BOUNDING_BOX,
74         MAP_SERVICE_ROUTE_PREF_INSTRUCTION_RETRIEVAL,
75         MAP_SERVICE_ROUTE_PREF_REALTIME_TRAFFIC,
76         MAP_SERVICE_ROUTE_PREF_PROPERTY,
77         MAP_SERVICE_ROUTE_DISTANCE_UNIT,
78         MAP_SERVICE_ROUTE_PROPERTY,
79         MAP_SERVICE_ROUTE_SEGMENT_PROPERTY,
80         MAP_SERVICE_ROUTE_STEP_PROPERTY,
81         MAP_SERVICE_TYPE_MAX
82
83 } LocationMapServiceType;
84
85 /**
86  * @brief Location Map Object redefined by GObject.
87  */
88 typedef GObject LocationMapObject;
89
90 /**
91  * @brief This represents address information such as building number, street name, etc.
92  */
93 typedef struct _LocationAddress    LocationAddress;
94
95 /**
96  * @brief This represents a structure of Location Map Preference.
97  */
98 typedef struct _LocationMapPref LocationMapPref;
99
100 /**
101  * @brief This represents a structure of Location POI filter.
102  */
103 typedef struct _LocationPOIFilter LocationPOIFilter;
104
105 /**
106  * @brief This represents a structure of Location POI preference.
107  */
108 typedef struct _LocationPOIPreference LocationPOIPreference;
109
110 /**
111  * @brief This represents a structure of Landmark information.
112  */
113 typedef struct _LocationLandmark    LocationLandmark;
114
115 /**
116  * @brief This represents a structure of Landmark Url.
117  */
118 typedef struct _LocationLandmarkUrl    LocationLandmarkUrl;
119
120 /**
121  * @brief This represents a structure of Location route preference.
122  */
123 typedef struct _LocationRoutePreference LocationRoutePreference;
124
125 /**
126  * @brief This represents a structure of Location route.
127  */
128 typedef struct _LocationRoute LocationRoute;
129
130 /**
131  * @brief This represents a structure of Location route segment.
132  */
133 typedef struct _LocationRouteSegment LocationRouteSegment;
134
135 /**
136  * @brief This represents a structure of Location route step.
137  */
138 typedef struct _LocationRouteStep LocationRouteStep;
139
140 /**
141  * @brief This represents callback function which will be called to give position information.
142  */
143 typedef void (*LocationPositionCB)(LocationError error, GList *position_list, GList *accuracy_list, gpointer userdata);
144
145 /**
146  * @brief This represents callback function which will be called to give address information.
147  */
148 typedef void  (*LocationAddressCB)(LocationError error, LocationAddress *address, LocationAccuracy *acc, gpointer userdata);
149
150 /**
151  * @brief This represents callback function which will be called to give POI information.
152  */
153 typedef void (*LocationPOICB)(LocationError error, guint req_id, GList *landmark_list, gchar *error_code, gchar *error_msg, gpointer userdata);
154
155 /**
156  * @brief This represents callback function which will be called to give Route information.
157  */
158 typedef void (*LocationRouteCB)(LocationError error, guint req_id, GList *route_list, gchar *error_code, gchar *error_msg, gpointer userdata);
159
160 /**
161  * @}@}
162  */
163
164 G_END_DECLS
165
166 #endif /* __LOCATION_MAP_TYPES_H__ */