Map
Elementary

## Typedefs

typedef struct _Elm_Map_Marker | Elm_Map_Marker
| A marker to be shown in a specific point of the map.
typedef struct _Elm_Map_Marker_Class | Elm_Map_Marker_Class
| Each marker must be associated to a class.
typedef struct _Elm_Map_Group_Class | Elm_Map_Group_Class
| Each marker must be associated to a group class.
typedef struct _Elm_Map_Route | Elm_Map_Route
| A route to be shown in the map.
typedef struct _Elm_Map_Name | Elm_Map_Name
| A handle for specific coordinates.
typedef struct _Elm_Map_Overlay | Elm_Map_Overlay
| A overlay to be shown in a specific point of the map.
typedef Evas_Object *(* | Elm_Map_Marker_Get_Func) (Evas_Object *obj, Elm_Map_Marker *marker, void *data)
| Bubble content fetching class function for marker classes.
typedef void(* | Elm_Map_Marker_Del_Func) (Evas_Object *obj, Elm_Map_Marker *marker, void *data, Evas_Object *o)
| Function to delete bubble content for marker classes.
typedef Evas_Object *(* | Elm_Map_Marker_Icon_Get_Func) (Evas_Object *obj, Elm_Map_Marker *marker, void *data)
| Icon fetching class function for marker classes.
typedef Evas_Object *(* | Elm_Map_Group_Icon_Get_Func) (Evas_Object *obj, void *data)
| Icon fetching class function for markers group classes.
typedef void(* | Elm_Map_Overlay_Get_Cb) (void *data, Evas_Object *map, Elm_Map_Overlay *overlay)
| Get callback function for the overlay.
typedef void(* | Elm_Map_Overlay_Del_Cb) (void *data, Evas_Object *map, Elm_Map_Overlay *overlay)
| Det callback function for the overlay.
typedef void(* | Elm_Map_Name_Cb) (void *data, Evas_Object *map, Elm_Map_Name *name)
| Async-callback function for the name request.
typedef void(* | Elm_Map_Name_List_Cb) (void *data, Evas_Object *map, Eina_List *name_list)
| Async-callback function for the name list request.
typedef void(* | Elm_Map_Route_Cb) (void *data, Evas_Object *map, Elm_Map_Route *route)
| Async-callback function for the route request.

## Enumerations

enum | Elm_Map_Name_Method { ELM_MAP_NAME_METHOD_SEARCH , ELM_MAP_NAME_METHOD_REVERSE , ELM_MAP_NAME_METHOD_LAST }
| Widget is broken due to on-line service API breaks.
enum | Elm_Map_Overlay_Type { ELM_MAP_OVERLAY_TYPE_NONE = 0 , ELM_MAP_OVERLAY_TYPE_DEFAULT , ELM_MAP_OVERLAY_TYPE_CLASS , ELM_MAP_OVERLAY_TYPE_GROUP , ELM_MAP_OVERLAY_TYPE_BUBBLE , ELM_MAP_OVERLAY_TYPE_ROUTE , ELM_MAP_OVERLAY_TYPE_LINE , ELM_MAP_OVERLAY_TYPE_POLYGON , ELM_MAP_OVERLAY_TYPE_CIRCLE , ELM_MAP_OVERLAY_TYPE_SCALE }
| Widget is broken due to on-line service API breaks.
enum | Elm_Map_Source_Type { ELM_MAP_SOURCE_TYPE_TILE = 0 , ELM_MAP_SOURCE_TYPE_ROUTE , ELM_MAP_SOURCE_TYPE_NAME , ELM_MAP_SOURCE_TYPE_LAST }
| Widget is broken due to on-line service API breaks. More...
enum | Elm_Map_Route_Type { ELM_MAP_ROUTE_TYPE_MOTOCAR = 0 , ELM_MAP_ROUTE_TYPE_BICYCLE , ELM_MAP_ROUTE_TYPE_FOOT , ELM_MAP_ROUTE_TYPE_LAST }
| Widget is broken due to on-line service API breaks. More...
enum | Elm_Map_Route_Method { ELM_MAP_ROUTE_METHOD_FASTEST = 0 , ELM_MAP_ROUTE_METHOD_SHORTEST , ELM_MAP_ROUTE_METHOD_LAST }
| Widget is broken due to on-line service API breaks. More...
enum | Elm_Map_Zoom_Mode { ELM_MAP_ZOOM_MODE_MANUAL = 0 , ELM_MAP_ZOOM_MODE_AUTO_FIT , ELM_MAP_ZOOM_MODE_AUTO_FILL , ELM_MAP_ZOOM_MODE_LAST }
| Widget is broken due to on-line service API breaks. More...

## Functions

void | elm_map_overlay_del (Elm_Map_Overlay *overlay)
| Widget is broken due to on-line service API breaks.
Elm_Map_Overlay_Type | elm_map_overlay_type_get (const Elm_Map_Overlay *overlay)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_data_set (Elm_Map_Overlay *overlay, void *data)
| Widget is broken due to on-line service API breaks.
void * | elm_map_overlay_data_get (const Elm_Map_Overlay *overlay)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_hide_set (Elm_Map_Overlay *overlay, Eina_Bool hide)
| Widget is broken due to on-line service API breaks.
Eina_Bool | elm_map_overlay_hide_get (const Elm_Map_Overlay *overlay)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_displayed_zoom_min_set (Elm_Map_Overlay *overlay, int zoom)
| Widget is broken due to on-line service API breaks.
int | elm_map_overlay_displayed_zoom_min_get (const Elm_Map_Overlay *overlay)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_paused_set (Elm_Map_Overlay *overlay, Eina_Bool paused)
| Widget is broken due to on-line service API breaks.
Eina_Bool | elm_map_overlay_paused_get (const Elm_Map_Overlay *overlay)
| Widget is broken due to on-line service API breaks.
Eina_Bool | elm_map_overlay_visible_get (const Elm_Map_Overlay *overlay)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_content_set (Elm_Map_Overlay *overlay, Evas_Object *obj)
| Widget is broken due to on-line service API breaks.
const Evas_Object * | elm_map_overlay_content_get (const Elm_Map_Overlay *overlay)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_icon_set (Elm_Map_Overlay *overlay, Evas_Object *icon)
| Widget is broken due to on-line service API breaks.
const Evas_Object * | elm_map_overlay_icon_get (const Elm_Map_Overlay *overlay)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_region_set (Elm_Map_Overlay *overlay, double lon, double lat)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_region_get (const Elm_Map_Overlay *overlay, double *lon, double *lat)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_color_set (Elm_Map_Overlay *overlay, int r, int g, int b, int a)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_color_get (const Elm_Map_Overlay *overlay, int *r, int *g, int *b, int *a)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_show (Elm_Map_Overlay *overlay)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlays_show (Eina_List *overlays)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_get_cb_set (Elm_Map_Overlay *overlay, Elm_Map_Overlay_Get_Cb get_cb, void *data)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_del_cb_set (Elm_Map_Overlay *overlay, Elm_Map_Overlay_Del_Cb del_cb, void *data)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_class_append (Elm_Map_Overlay *clas, Elm_Map_Overlay *overlay)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_class_remove (Elm_Map_Overlay *clas, Elm_Map_Overlay *overlay)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_class_zoom_max_set (Elm_Map_Overlay *clas, int zoom)
| Widget is broken due to on-line service API breaks.
int | elm_map_overlay_class_zoom_max_get (const Elm_Map_Overlay *clas)
| Widget is broken due to on-line service API breaks.
Eina_List * | elm_map_overlay_group_members_get (const Elm_Map_Overlay *grp)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_bubble_follow (Elm_Map_Overlay *bubble, const Elm_Map_Overlay *parent)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_bubble_content_append (Elm_Map_Overlay *bubble, Evas_Object *content)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_bubble_content_clear (Elm_Map_Overlay *bubble)
| Widget is broken due to on-line service API breaks.
void | elm_map_overlay_polygon_region_add (Elm_Map_Overlay *overlay, double lon, double lat)
| Widget is broken due to on-line service API breaks.
void | elm_map_route_del (Elm_Map_Route *route)
| Widget is broken due to on-line service API breaks.
double | elm_map_route_distance_get (const Elm_Map_Route *route)
| Widget is broken due to on-line service API breaks.
const char * | elm_map_route_node_get (const Elm_Map_Route *route)
| Widget is broken due to on-line service API breaks.
const char * | elm_map_route_waypoint_get (const Elm_Map_Route *route)
| Widget is broken due to on-line service API breaks.
const char * | elm_map_name_address_get (const Elm_Map_Name *name)
| Widget is broken due to on-line service API breaks.
void | elm_map_name_region_get (const Elm_Map_Name *name, double *lon, double *lat)
| Widget is broken due to on-line service API breaks.
void | elm_map_name_del (Elm_Map_Name *name)
| Widget is broken due to on-line service API breaks.
void | elm_map_zoom_min_set (Elm_Map *obj, int zoom)
| Widget is broken due to on-line service API breaks.
int | elm_map_zoom_min_get (const Elm_Map *obj)
| Widget is broken due to on-line service API breaks.
void | elm_map_rotate_set (Elm_Map *obj, double degree, int cx, int cy)
| Widget is broken due to on-line service API breaks.
void | elm_map_rotate_get (const Elm_Map *obj, double *degree, int *cx, int *cy)
| Widget is broken due to on-line service API breaks.
void | elm_map_user_agent_set (Elm_Map *obj, const char *user_agent)
| Widget is broken due to on-line service API breaks.
const char * | elm_map_user_agent_get (const Elm_Map *obj)
| Widget is broken due to on-line service API breaks.
void | elm_map_zoom_max_set (Elm_Map *obj, int zoom)
| Widget is broken due to on-line service API breaks.
int | elm_map_zoom_max_get (const Elm_Map *obj)
| Widget is broken due to on-line service API breaks.
void | elm_map_region_get (const Elm_Map *obj, double *lon, double *lat)
| Widget is broken due to on-line service API breaks.
Eina_List * | elm_map_overlays_get (const Elm_Map *obj)
| Widget is broken due to on-line service API breaks.
void | elm_map_tile_load_status_get (const Elm_Map *obj, int *try_num, int *finish_num)
| Widget is broken due to on-line service API breaks.
void | elm_map_source_set (Elm_Map *obj, Elm_Map_Source_Type type, const char *source_name)
| Widget is broken due to on-line service API breaks.
const char * | elm_map_source_get (const Elm_Map *obj, Elm_Map_Source_Type type)
| Widget is broken due to on-line service API breaks.
Elm_Map_Route * | elm_map_route_add (Elm_Map *obj, Elm_Map_Route_Type type, Elm_Map_Route_Method method, double flon, double flat, double tlon, double tlat, Elm_Map_Route_Cb route_cb, void *data)
| Widget is broken due to on-line service API breaks.
Efl_Canvas_Object * | elm_map_track_add (Elm_Map *obj, void *emap)
| Widget is broken due to on-line service API breaks.
void | elm_map_region_to_canvas_convert (const Elm_Map *obj, double lon, double lat, int *x, int *y)
| Widget is broken due to on-line service API breaks.
Elm_Map_Overlay * | elm_map_overlay_circle_add (Elm_Map *obj, double lon, double lat, double radius)
| Widget is broken due to on-line service API breaks.
Elm_Map_Overlay * | elm_map_overlay_class_add (Elm_Map *obj)
| Widget is broken due to on-line service API breaks.
Elm_Map_Overlay * | elm_map_overlay_bubble_add (Elm_Map *obj)
| Widget is broken due to on-line service API breaks.
const char ** | elm_map_sources_get (const Elm_Map *obj, Elm_Map_Source_Type type)
| Widget is broken due to on-line service API breaks.
Elm_Map_Overlay * | elm_map_overlay_polygon_add (Elm_Map *obj)
| Widget is broken due to on-line service API breaks.
Elm_Map_Overlay * | elm_map_overlay_line_add (Elm_Map *obj, double flon, double flat, double tlon, double tlat)
| Widget is broken due to on-line service API breaks.
void | elm_map_region_show (Elm_Map *obj, double lon, double lat)
| Widget is broken due to on-line service API breaks.
Elm_Map_Name * | elm_map_name_add (const Elm_Map *obj, const char *address, double lon, double lat, Elm_Map_Name_Cb name_cb, void *data)
| Widget is broken due to on-line service API breaks.
void | elm_map_name_search (const Elm_Map *obj, const char *address, Elm_Map_Name_List_Cb name_cb, void *data)
| Widget is broken due to on-line service API breaks.
void | elm_map_region_bring_in (Elm_Map *obj, double lon, double lat)
| Widget is broken due to on-line service API breaks.
void | elm_map_region_zoom_bring_in (Elm_Map *obj, int zoom, double lon, double lat)
| Widget is broken due to on-line service API breaks.
void | elm_map_track_remove (Elm_Map *obj, Efl_Canvas_Object *route)
| Widget is broken due to on-line service API breaks.
Elm_Map_Overlay * | elm_map_overlay_route_add (Elm_Map *obj, const Elm_Map_Route *route)
| Widget is broken due to on-line service API breaks.
Elm_Map_Overlay * | elm_map_overlay_scale_add (Elm_Map *obj, int x, int y)
| Widget is broken due to on-line service API breaks.
Elm_Map_Overlay * | elm_map_overlay_add (Elm_Map *obj, double lon, double lat)
| Widget is broken due to on-line service API breaks.
void | elm_map_canvas_to_region_convert (const Elm_Map *obj, int x, int y, double *lon, double *lat)
| Widget is broken due to on-line service API breaks.
Evas_Object * | elm_map_add (Evas_Object *parent)
| Widget is broken due to on-line service API breaks.
void | elm_map_zoom_set (Evas_Object *obj, int zoom)
| Widget is broken due to on-line service API breaks Widget is broken due to on-line service API breaks.
int | elm_map_zoom_get (const Evas_Object *obj)
| Widget is broken due to on-line service API breaks Widget is broken due to on-line service API breaks.
void | elm_map_zoom_mode_set (Evas_Object *obj, Elm_Map_Zoom_Mode mode)
| Widget is broken due to on-line service API breaks Widget is broken due to on-line service API breaks.
Elm_Map_Zoom_Mode | elm_map_zoom_mode_get (const Evas_Object *obj)
| Widget is broken due to on-line service API breaks Widget is broken due to on-line service API breaks.
void | elm_map_wheel_disabled_set (Evas_Object *obj, Eina_Bool disabled)
| Widget is broken due to on-line service API breaks Widget is broken due to on-line service API breaks.
Eina_Bool | elm_map_wheel_disabled_get (const Evas_Object *obj)
| Widget is broken due to on-line service API breaks Widget is broken due to on-line service API breaks.
void | elm_map_paused_set (Evas_Object *obj, Eina_Bool paused)
| Widget is broken due to on-line service API breaks Widget is broken due to on-line service API breaks.
Eina_Bool | elm_map_paused_get (const Evas_Object *obj)
| Widget is broken due to on-line service API breaks Widget is broken due to on-line service API breaks.

## Detailed Description

This is a widget specifically for displaying a map. It uses basically OpenStreetMap provider http://www.openstreetmap.org/ but custom providers can be added.

It supports some basic but yet nice features:

- zooming and scrolling,
- markers with content to be displayed when user clicks over them,
- group of markers and
- routes.

This widget implements the The Elementary Scrollable Interface interface, so that all (non-deprecated) functions for the base Scroller widget also work for map objects.

Smart callbacks one can listen to:

- `"clicked"` - This is called when a user has clicked the map without dragging around.
- `"clicked,double"` - This is called when a user has double-clicked the map.
- `"press"` - This is called when a user has pressed down on the map.
- `"longpressed"` - This is called when a user has pressed down on the map `for` a long time without dragging around.
- `"scroll"` - the content has been scrolled (moved).
- `"scroll,drag,start"` - dragging the contents around has started.
- `"scroll,drag,stop"` - dragging the contents around has stopped.
- `"scroll,anim,start"` - scrolling animation has started.
- `"scroll,anim,stop"` - scrolling animation has stopped.
- `"zoom,start"` - Zoom animation started.
- `"zoom,stop"` - Zoom animation stopped.
- `"zoom,change"` - Zoom changed when using an auto zoom mode.
- `"tile,load"` - A map tile image load begins.
- `"tile,loaded"` - A map tile image load ends.
- `"tile,loaded,fail"` - A map tile image load fails.
- `"route,load"` - Route request begins.
- `"route,loaded"` - Route request ends.
- `"route,loaded,fail"` - Route request fails.
- `"name,load"` - Name request begins.
- `"name,loaded"` - Name request ends.
- `"name,loaded,fail"` - Name request fails.
- `"overlay,clicked"` - A overlay is clicked.
- `"loaded"` - when a map is finally loaded. (since 1.7)
- `"language,changed"` - the program's language changed
- `"focused"` - When the map has received focus. (since 1.8)
- `"unfocused"` - When the map has lost focus. (since 1.8)

Available style for map widget:

- `"default"`

Available style for markers:

- `"radio"`
- `"radio2"`
- `"empty"`

Available style for marker bubble:

- `"default"`

List of examples:

- Map Example - Creation and Zoom
- Map Example - Overlay Usage
- Map Example - Route and Name Usage

## Typedef Documentation

## Elm_Map_Marker

typedef struct _Elm_Map_Marker Elm_Map_Marker

A marker to be shown in a specific point of the map.

Can be created with elm_map_marker_add() and deleted with elm_map_marker_remove().

## Elm_Map_Marker_Class

typedef struct _Elm_Map_Marker_Class Elm_Map_Marker_Class

Each marker must be associated to a class.

It's required to add a mark. The class defines the style of the marker when a marker is displayed alone (not grouped). A new class can be created with elm_map_marker_class_new().

## Elm_Map_Group_Class

typedef struct _Elm_Map_Group_Class Elm_Map_Group_Class

Each marker must be associated to a group class.

It's required to add a mark. The group class defines the style of the marker when a marker is grouped to other markers. Markers with the same group are grouped if they are close. A new group class can be created with elm_map_marker_group_class_new().

## Elm_Map_Route

typedef struct _Elm_Map_Route Elm_Map_Route

A route to be shown in the map.

Can be created with elm_map_route_add() and deleted with elm_map_route_del().

Examples
  map_example_03.c.

## Elm_Map_Overlay

typedef struct _Elm_Map_Overlay Elm_Map_Overlay

A overlay to be shown in a specific point of the map.

This can be created by elm_map_overlay_add() and similar functions and deleted by elm_map_overlay_del().

Examples
  map_example_02.c, and map_example_03.c.

## Elm_Map_Marker_Get_Func

typedef Evas_Object *(* Elm_Map_Marker_Get_Func) (Evas_Object *obj, Elm_Map_Marker *marker, void *data)

Bubble content fetching class function for marker classes.

When the user click on a marker, a bubble is displayed with a content.

## Elm_Map_Overlay_Del_Cb

typedef void(* Elm_Map_Overlay_Del_Cb) (void *data, Evas_Object *map, Elm_Map_Overlay *overlay)

Det callback function for the overlay.

Since
  1.7

## Enumeration Type Documentation

## Elm_Map_Source_Type

enum Elm_Map_Source_Type

Widget is broken due to on-line service API breaks.

Widget is broken due to on-line service API breaks

Enumerator
ELM_MAP_SOURCE_TYPE_TILE | Map tile provider.
ELM_MAP_SOURCE_TYPE_ROUTE | Route service provider.
ELM_MAP_SOURCE_TYPE_NAME | Name service provider.
ELM_MAP_SOURCE_TYPE_LAST | Sentinel value to indicate last enum field during iteration.

## Elm_Map_Route_Type

enum Elm_Map_Route_Type

Widget is broken due to on-line service API breaks.

Enumerator
ELM_MAP_ROUTE_TYPE_MOTOCAR | Route should consider an automobile will be used.
ELM_MAP_ROUTE_TYPE_BICYCLE | Route should consider a bicycle will be used by the user.
ELM_MAP_ROUTE_TYPE_FOOT | Route should consider user will be walking.
ELM_MAP_ROUTE_TYPE_LAST | Sentinel value to indicate last enum field during iteration.

## Elm_Map_Route_Method

enum Elm_Map_Route_Method

Widget is broken due to on-line service API breaks.

Enumerator
ELM_MAP_ROUTE_METHOD_FASTEST | Route should prioritize time.
ELM_MAP_ROUTE_METHOD_SHORTEST | Route should prioritize distance.
ELM_MAP_ROUTE_METHOD_LAST | Sentinel value to indicate last enum field during iteration.

## Elm_Map_Zoom_Mode

enum Elm_Map_Zoom_Mode

Widget is broken due to on-line service API breaks.

Enumerator
ELM_MAP_ZOOM_MODE_MANUAL | Zoom controlled manually by elm_map_zoom_set(). It's set by default.
ELM_MAP_ZOOM_MODE_AUTO_FIT | Zoom until map fits inside the scroll frame with no pixels outside this area.
ELM_MAP_ZOOM_MODE_AUTO_FILL | Zoom until map fills scroll, ensuring no pixels are left unfilled.
ELM_MAP_ZOOM_MODE_LAST | Sentinel value to indicate last enum field during iteration.