forked from enlightenment/efl
From: Bluezery <ohpowel@gmail.com>
Subject: [E-devel] [Patch][elm_map] Change & Add map APIs I rename & add some APIs. As previously discussed, I categorized map APIs. (http://marc.info/?l=enlightenment-devel&m=132685497711772&w=2) 1) Zoom elm_map_zoom_set/get elm_map_zoom_mode_set/get elm_map_zoom_min_set/get elm_map_zoom_max_set/get 2) Region - Geographic coordinates (region) elm_map_region_get elm_map_region_show/bring_in elm_map_canvas_to_region_convert I will not use "_geo_" in map APIs. All map APIs are basically used by geographic coordinates. 3) Property elm_map_paused_set/get elm_map_rotate_set/get elm_map_wheel_disabled_set/get elm_map_user_agent_set/get 4) Overlay elm_map_overlay_add/del elm_map_overlay_xxx elm_map_overlay_class_xxx elm_map_overlay_bubble_xxx elm_map_overlay_route_xxx I will add line, rectangle, poi overlays ASAP. 5) Source - External Provider (Tile, Route, Name, ) elm_map_sources_get elm_map_source_set/get I will add more provider ASAP such as POI, etc. 6) Route elm_map_route_add/del elm_map_route_distance_get elm_map_route_node_get elm_map_route_waypoints_get 7) Name elm_map_name_add/del elm_map_route_address_get elm_map_route_region_get 6) Route and 7) Name do not return visible objects actually. Those just return data. I don't know "_add" suffix is correct for none visible objects. I cannot decide yet whether those should be removed from map widget. But current trends are that route, geocoding are tightly coupled with Map. If Apps want to use only data, just use elm_map_route_add(). If not, use elm_map_route_add() & elm_map_overlay_route_add(). Also name overlay could be added in the future. 8) Miscellaneous elm_map_tile_load_status_get 9) Signals Basic events : "clicked", "clicked,double", "press", "longpressed", Scroller events: "scroll", "scroll,xxx,xxx" Zoom events: "zoom,start/stop/change" Source (provider) events: "tile,load/loaded/loaded,fail" , "route,load/loaded/loaded,fail", "name,load/loaded/loaded,fail" There are some big patches. I think diff program do not make exact diff. :D. Anyway, it's better to maintain if this can be in before API fix (elementary 1.0). Because after these change, It is hard to maintain old APIs. PS) Documentations and some minor bugs are remained yet. SVN revision: 68915
This commit is contained in:
parent
1c0123038a
commit
8479b5f328
|
@ -19,19 +19,6 @@ typedef struct Map_Source
|
|||
char *source_name;
|
||||
} Map_Source;
|
||||
|
||||
static Elm_Map_Overlay *route_start, *route_end, *route_clas;
|
||||
static Elm_Map_Overlay *bubble_img;
|
||||
static Elm_Map_Overlay *bubble_parking;
|
||||
|
||||
static Evas_Object *menu, *fs_win;
|
||||
static Elm_Map_Route *route;
|
||||
static Elm_Map_Name *name;
|
||||
static Evas_Object *track;
|
||||
static const char **source_names = NULL;
|
||||
static Evas_Coord old_x, old_y;
|
||||
static Evas_Coord old_d;
|
||||
static Map_Source ms[SOURCE_MAX];
|
||||
|
||||
Overlay_Data data1 = {PACKAGE_DATA_DIR"/images/logo.png"};
|
||||
Overlay_Data data2 = {PACKAGE_DATA_DIR"/images/logo_small.png"};
|
||||
Overlay_Data data3 = {PACKAGE_DATA_DIR"/images/panel_01.jpg"};
|
||||
|
@ -46,6 +33,20 @@ Overlay_Data data11= {PACKAGE_DATA_DIR"/images/wood_01.jpg"};
|
|||
Overlay_Data parking= {PACKAGE_DATA_DIR"/images/parking.png"};
|
||||
Overlay_Data icon_data = {PACKAGE_DATA_DIR"/images/icon_14.png"};
|
||||
|
||||
static Elm_Map_Overlay *route_start, *route_end, *route_clas;
|
||||
static Elm_Map_Overlay *bubble_img;
|
||||
static Elm_Map_Overlay *bubble_parking;
|
||||
static Elm_Map_Overlay *route_ovl;
|
||||
|
||||
static Evas_Object *menu, *fs_win;
|
||||
static Elm_Map_Route *route;
|
||||
static Elm_Map_Name *name;
|
||||
static Evas_Object *track;
|
||||
static const char **source_names = NULL;
|
||||
static Evas_Coord old_x, old_y;
|
||||
static Evas_Coord old_d;
|
||||
static Map_Source ms[SOURCE_MAX];
|
||||
|
||||
static void
|
||||
#ifdef ELM_EMAP
|
||||
my_map_gpx_fileselector_done(void *data, Evas_Object *obj __UNUSED__, void *event_info)
|
||||
|
@ -68,32 +69,6 @@ my_map_gpx_fileselector_done(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
|
|||
evas_object_del(fs_win);
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("clicked\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_press(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("press\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_longpressed(void *data __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
if (!event_info) return;
|
||||
double lon, lat;
|
||||
Evas_Event_Mouse_Down *down = (Evas_Event_Mouse_Down *)event_info;
|
||||
elm_map_canvas_to_geo_convert(obj, down->canvas.x, down->canvas.y, &lon, &lat);
|
||||
printf("longpressed, x:%d, y:%d, lon:%lf, lat:%lf\n", down->canvas.x, down->canvas.y, lon, lat);
|
||||
|
||||
if (elm_map_zoom_get(obj) < 5) return;
|
||||
if (name) elm_map_name_remove(name);
|
||||
name = elm_map_utils_convert_coord_into_name(obj, lon, lat);
|
||||
}
|
||||
|
||||
static Evas_Object *
|
||||
_route_icon_get(Evas_Object *obj)
|
||||
{
|
||||
|
@ -105,7 +80,13 @@ _route_icon_get(Evas_Object *obj)
|
|||
}
|
||||
|
||||
static void
|
||||
my_map_clicked_double(void *data __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
_map_clicked(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("clicked\n");
|
||||
}
|
||||
|
||||
static void
|
||||
_map_clicked_double(void *data __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
printf("clicked,double\n");
|
||||
double lon, lat;
|
||||
|
@ -113,10 +94,9 @@ my_map_clicked_double(void *data __UNUSED__, Evas_Object *obj, void *event_info)
|
|||
if (!down) return;
|
||||
if (elm_map_zoom_get(obj) < 5) return;
|
||||
|
||||
elm_map_canvas_to_geo_convert(obj, down->canvas.x, down->canvas.y, &lon, &lat);
|
||||
elm_map_canvas_to_region_convert(obj, down->canvas.x, down->canvas.y, &lon, &lat);
|
||||
printf("x:%d, y:%d, lon:%lf, lat:%lf\n", down->canvas.x, down->canvas.y, lon, lat);
|
||||
|
||||
|
||||
if (!route_clas)
|
||||
{
|
||||
route_clas = elm_map_overlay_class_add(obj);
|
||||
|
@ -126,13 +106,13 @@ my_map_clicked_double(void *data __UNUSED__, Evas_Object *obj, void *event_info)
|
|||
|
||||
if (route_start && route_end)
|
||||
{
|
||||
printf("11\n");
|
||||
elm_map_overlay_del(route_start);
|
||||
elm_map_overlay_del(route_end);
|
||||
elm_map_route_remove(route);
|
||||
// FIXME: deprecated
|
||||
// elm_map_route_remove(route);
|
||||
route_start = NULL;
|
||||
route_end = NULL;
|
||||
//route = NULL;
|
||||
route = NULL;
|
||||
}
|
||||
|
||||
if (!route_start) route_start = elm_map_overlay_add(obj, lon, lat);
|
||||
|
@ -143,99 +123,123 @@ my_map_clicked_double(void *data __UNUSED__, Evas_Object *obj, void *event_info)
|
|||
double start_lon, start_lat, end_lon, end_lat;
|
||||
elm_map_overlay_class_append(route_clas, route_start);
|
||||
elm_map_overlay_class_append(route_clas, route_end);
|
||||
elm_map_overlay_geo_get(route_start, &start_lon, &start_lat);
|
||||
elm_map_overlay_geo_get(route_end, &end_lon, &end_lat);
|
||||
elm_map_overlay_region_get(route_start, &start_lon, &start_lat);
|
||||
elm_map_overlay_region_get(route_end, &end_lon, &end_lat);
|
||||
route = elm_map_route_add(obj, ELM_MAP_ROUTE_TYPE_MOTOCAR,
|
||||
ELM_MAP_ROUTE_METHOD_FASTEST,
|
||||
start_lon, start_lat, end_lon, end_lat);
|
||||
elm_map_route_color_set(route, 255, 0, 0, 255);
|
||||
ELM_MAP_ROUTE_METHOD_FASTEST,
|
||||
start_lon, start_lat, end_lon, end_lat,
|
||||
NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_load_detail(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_press(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("load,detail\n");
|
||||
printf("press\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_loaded_detail(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_longpressed(void *data __UNUSED__, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
printf("loaded,detail\n");
|
||||
if (!event_info) return;
|
||||
double lon, lat;
|
||||
Evas_Event_Mouse_Down *down = (Evas_Event_Mouse_Down *)event_info;
|
||||
elm_map_canvas_to_region_convert(obj, down->canvas.x, down->canvas.y, &lon, &lat);
|
||||
printf("longpressed, x:%d, y:%d, lon:%lf, lat:%lf\n", down->canvas.x, down->canvas.y, lon, lat);
|
||||
|
||||
if (elm_map_zoom_get(obj) < 8) return;
|
||||
// FIXME: deprecated
|
||||
// if (name) elm_map_name_remove(name);
|
||||
name = elm_map_name_add(obj, NULL, lon, lat, NULL, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_zoom_start(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_scroll(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("zoom,start\n");
|
||||
double lon, lat;
|
||||
elm_map_region_get(obj, &lon, &lat);
|
||||
printf("scroll, longitude: %f latitude: %f\n", lon, lat);
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_zoom_stop(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_drag_start(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("zoom,stop\n");
|
||||
printf("scroll,drag,start\n");
|
||||
evas_object_smart_callback_del(data, "longpressed", _map_longpressed);
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_zoom_change(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_drag_stop(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("zoom,change\n");
|
||||
printf("scroll,drag,stop\n");
|
||||
evas_object_smart_callback_add(data, "longpressed", _map_longpressed, data);
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_anim_start(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_anim_start(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("scroll,anim,start\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_anim_stop(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_anim_stop(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("scroll,anim,stop\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_drag_start(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_zoom_start(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("scroll,drag,start\n");
|
||||
evas_object_smart_callback_del(data, "longpressed", my_map_longpressed);
|
||||
printf("zoom,start\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_drag_stop(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_zoom_stop(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("scroll,drag,stop\n");
|
||||
evas_object_smart_callback_add(data, "longpressed", my_map_longpressed, data);
|
||||
printf("zoom,stop\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_scroll(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
_map_zoom_change(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
double lon, lat;
|
||||
elm_map_geo_region_get(obj, &lon, &lat);
|
||||
printf("scroll, longitude: %f latitude: %f\n", lon, lat);
|
||||
printf("zoom,change\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_downloaded(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_tile_load(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("tile,load\n");
|
||||
}
|
||||
|
||||
static void
|
||||
_map_tile_loaded(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
int try_num, finish_num;
|
||||
elm_map_utils_downloading_status_get(data, &try_num, &finish_num);
|
||||
printf("downloaded : %d / %d\n", finish_num, try_num);
|
||||
elm_map_tile_load_status_get(data, &try_num, &finish_num);
|
||||
printf("tile,loaded: %d / %d\n", finish_num, try_num);
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_route_load(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_tile_loaded_fail(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
int try_num, finish_num;
|
||||
elm_map_tile_load_status_get(data, &try_num, &finish_num);
|
||||
printf("tile,loaded,fail: %d / %d\n", finish_num, try_num);
|
||||
}
|
||||
|
||||
static void
|
||||
_map_route_load(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("route,load\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_route_loaded(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_route_loaded(void *data __UNUSED__, Evas_Object *obj, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("route,loaded\n");
|
||||
double d;
|
||||
const char *w, *n;
|
||||
|
||||
d = elm_map_route_distance_get(route);
|
||||
printf("route distance = %lf km\n", d);
|
||||
|
||||
|
@ -244,16 +248,26 @@ my_map_route_loaded(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *ev
|
|||
|
||||
n = elm_map_route_node_get(route);
|
||||
if (n) printf("[nodes]\n%s\n", n);
|
||||
|
||||
if (route_ovl) elm_map_overlay_del(route_ovl);
|
||||
route_ovl = elm_map_overlay_route_add(obj, route);
|
||||
elm_map_overlay_color_set(route_ovl, 255, 0, 0, 255);
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_name_load(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_route_loaded_fail(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("route,loaded,fail\n");
|
||||
}
|
||||
|
||||
static void
|
||||
_map_name_load(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("name,load\n");
|
||||
}
|
||||
|
||||
static void
|
||||
my_map_name_loaded(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
_map_name_loaded(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("name,loaded\n");
|
||||
if (!name) return;
|
||||
|
@ -268,12 +282,20 @@ my_map_name_loaded(void *data, Evas_Object *obj __UNUSED__, void *event_info __U
|
|||
Eina_Bool b = elm_map_paused_get(data);
|
||||
elm_map_paused_set(data, EINA_TRUE);
|
||||
elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_MANUAL);
|
||||
elm_map_geo_region_show(data, lon, lat);
|
||||
elm_map_zoom_set(data, elm_map_source_zoom_max_get(data));
|
||||
elm_map_region_show(data, lon, lat);
|
||||
elm_map_zoom_set(data, elm_map_zoom_max_get(data));
|
||||
elm_map_paused_set(data, b);
|
||||
}
|
||||
}
|
||||
elm_map_name_remove(name);
|
||||
// FIXME: deprecated
|
||||
// elm_map_name_remove(name);
|
||||
name = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
_map_name_loaded_fail(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
printf("name,loaded,fail\n");
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -282,7 +304,7 @@ map_show_urmatt(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUS
|
|||
Eina_Bool b = elm_map_paused_get(data);
|
||||
elm_map_paused_set(data, EINA_TRUE);
|
||||
elm_map_zoom_mode_set(data, ELM_MAP_ZOOM_MODE_MANUAL);
|
||||
elm_map_geo_region_show(data,7.325201, 48.526813);
|
||||
elm_map_region_show(data,7.325201, 48.526813);
|
||||
elm_map_zoom_set(data, 12);
|
||||
elm_map_paused_set(data, b);
|
||||
}
|
||||
|
@ -290,7 +312,7 @@ map_show_urmatt(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUS
|
|||
static void
|
||||
map_bring_seoul(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_map_geo_region_bring_in(data, 126.977969, 37.566535);
|
||||
elm_map_region_bring_in(data, 126.977969, 37.566535);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -438,13 +460,13 @@ map_rotate_reset(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNU
|
|||
static void
|
||||
map_zoom_min_set(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_map_source_zoom_min_set(data, 1);
|
||||
elm_map_zoom_min_set(data, 1);
|
||||
}
|
||||
|
||||
static void
|
||||
map_zoom_max_set(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
elm_map_source_zoom_max_set(data, 10);
|
||||
elm_map_zoom_max_set(data, 10);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -453,7 +475,7 @@ map_source(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
|||
Map_Source *s = data;
|
||||
|
||||
if (!s) return;
|
||||
elm_map_source_name_set(s->map, s->source_name);
|
||||
elm_map_source_set(s->map, ELM_MAP_SOURCE_TYPE_TILE, s->source_name);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -694,13 +716,13 @@ _overlay_cb(void *data __UNUSED__, Evas_Object *map, void *ev)
|
|||
}
|
||||
|
||||
static void
|
||||
_parking_cb(void *data __UNUSED__, Evas_Object *map, Elm_Map_Overlay *ovl)
|
||||
_parking_cb(void *data __UNUSED__, Evas_Object *map, const Elm_Map_Overlay *ovl)
|
||||
{
|
||||
printf("Parking clicked\n");
|
||||
if (elm_map_overlay_type_get(ovl) != ELM_MAP_OVERLAY_TYPE_DEFAULT) return;
|
||||
|
||||
double lon, lat;
|
||||
elm_map_overlay_geo_get(ovl, &lon, &lat);
|
||||
elm_map_overlay_region_get(ovl, &lon, &lat);
|
||||
if (!bubble_parking)
|
||||
{
|
||||
Evas_Object *bubble, *label;
|
||||
|
@ -720,7 +742,31 @@ _parking_cb(void *data __UNUSED__, Evas_Object *map, Elm_Map_Overlay *ovl)
|
|||
bubble_parking = elm_map_overlay_add(map, lon + 0.0006, lat + 0.0006);
|
||||
elm_map_overlay_content_set(bubble_parking, bubble);
|
||||
}
|
||||
elm_map_overlay_geo_set(bubble_parking, lon + 0.0006, lat + 0.0006);
|
||||
elm_map_overlay_region_set(bubble_parking, lon + 0.0006, lat + 0.0006);
|
||||
}
|
||||
|
||||
static void
|
||||
_del_map(void *data __UNUSED__, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *ei __UNUSED__)
|
||||
{
|
||||
if (route_start) elm_map_overlay_del(route_start);
|
||||
if (route_end) elm_map_overlay_del(route_end);
|
||||
if (route_clas) elm_map_overlay_del(route_clas);
|
||||
if (bubble_img) elm_map_overlay_del(bubble_img);
|
||||
if (bubble_parking) elm_map_overlay_del(bubble_parking);
|
||||
if (route_ovl) elm_map_overlay_del(route_ovl);
|
||||
route_start = NULL;
|
||||
route_end = NULL;
|
||||
route_clas = NULL;
|
||||
bubble_img = NULL;
|
||||
bubble_parking = NULL;
|
||||
route_ovl = NULL;
|
||||
|
||||
// FIXME: deprecated
|
||||
// if (route) elm_map_route_remove(route);
|
||||
// FIXME: deprecated
|
||||
// if (name) elm_map_name_remove(name);
|
||||
route = NULL;
|
||||
name = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -746,13 +792,15 @@ test_map(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __
|
|||
Elm_Map_Overlay *parking1, *parking2, *parking3, *parking4, *parking5;
|
||||
Elm_Map_Overlay *grp1, *grp2, *grp_parking;
|
||||
|
||||
evas_object_event_callback_add(map, EVAS_CALLBACK_DEL, _del_map, NULL);
|
||||
|
||||
srand(time(NULL));
|
||||
|
||||
source_names = elm_map_source_names_get(map);
|
||||
source_names = elm_map_sources_get(map, ELM_MAP_SOURCE_TYPE_TILE);
|
||||
|
||||
if (!source_names) return;
|
||||
printf("map sources [ ");
|
||||
for (idx = 0; source_names[idx] ; idx++) printf("%s ", source_names[idx]);
|
||||
for (idx = 0; source_names[idx] ; idx++) printf("%s, ", source_names[idx]);
|
||||
printf("]\n");
|
||||
|
||||
evas_object_size_hint_weight_set(map, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
|
||||
|
@ -766,25 +814,27 @@ test_map(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __
|
|||
evas_object_event_callback_add(map, EVAS_CALLBACK_MOUSE_UP,
|
||||
_map_mouse_up, map);
|
||||
|
||||
evas_object_smart_callback_add(map, "clicked", my_map_clicked, map);
|
||||
evas_object_smart_callback_add(map, "press", my_map_press, map);
|
||||
evas_object_smart_callback_add(map, "longpressed", my_map_longpressed, map);
|
||||
evas_object_smart_callback_add(map, "clicked,double", my_map_clicked_double, map);
|
||||
evas_object_smart_callback_add(map, "load,detail", my_map_load_detail, map);
|
||||
evas_object_smart_callback_add(map, "loaded,detail", my_map_loaded_detail, map);
|
||||
evas_object_smart_callback_add(map, "zoom,start", my_map_zoom_start, map);
|
||||
evas_object_smart_callback_add(map, "zoom,stop", my_map_zoom_stop, map);
|
||||
evas_object_smart_callback_add(map, "zoom,change", my_map_zoom_change, map);
|
||||
evas_object_smart_callback_add(map, "scroll,anim,start", my_map_anim_start, map);
|
||||
evas_object_smart_callback_add(map, "scroll,anim,stop", my_map_anim_stop, map);
|
||||
evas_object_smart_callback_add(map, "scroll,drag,start", my_map_drag_start, map);
|
||||
evas_object_smart_callback_add(map, "scroll,drag,stop", my_map_drag_stop, map);
|
||||
evas_object_smart_callback_add(map, "scroll", my_map_scroll, map);
|
||||
evas_object_smart_callback_add(map, "downloaded", my_map_downloaded, map);
|
||||
evas_object_smart_callback_add(map, "route,load", my_map_route_load, map);
|
||||
evas_object_smart_callback_add(map, "route,loaded", my_map_route_loaded, map);
|
||||
evas_object_smart_callback_add(map, "name,load", my_map_name_load, map);
|
||||
evas_object_smart_callback_add(map, "name,loaded", my_map_name_loaded, map);
|
||||
evas_object_smart_callback_add(map, "clicked", _map_clicked, map);
|
||||
evas_object_smart_callback_add(map, "clicked,double", _map_clicked_double, map);
|
||||
evas_object_smart_callback_add(map, "press", _map_press, map);
|
||||
evas_object_smart_callback_add(map, "longpressed", _map_longpressed, map);
|
||||
evas_object_smart_callback_add(map, "scroll", _map_scroll, map);
|
||||
evas_object_smart_callback_add(map, "scroll,drag,start", _map_drag_start, map);
|
||||
evas_object_smart_callback_add(map, "scroll,drag,stop", _map_drag_stop, map);
|
||||
evas_object_smart_callback_add(map, "scroll,anim,start", _map_anim_start, map);
|
||||
evas_object_smart_callback_add(map, "scroll,anim,stop", _map_anim_stop, map);
|
||||
evas_object_smart_callback_add(map, "zoom,start", _map_zoom_start, map);
|
||||
evas_object_smart_callback_add(map, "zoom,stop", _map_zoom_stop, map);
|
||||
evas_object_smart_callback_add(map, "zoom,change", _map_zoom_change, map);
|
||||
evas_object_smart_callback_add(map, "tile,load", _map_tile_load, map);
|
||||
evas_object_smart_callback_add(map, "tile,loaded", _map_tile_loaded, map);
|
||||
evas_object_smart_callback_add(map, "tile,loaded,fail", _map_tile_loaded_fail, map);
|
||||
evas_object_smart_callback_add(map, "route,load", _map_route_load, map);
|
||||
evas_object_smart_callback_add(map, "route,loaded", _map_route_loaded, map);
|
||||
evas_object_smart_callback_add(map, "route,loaded,fail", _map_route_loaded_fail, map);
|
||||
evas_object_smart_callback_add(map, "name,load", _map_name_load, map);
|
||||
evas_object_smart_callback_add(map, "name,loaded", _map_name_loaded, map);
|
||||
evas_object_smart_callback_add(map, "name,loaded,fail", _map_name_loaded_fail, map);
|
||||
evas_object_smart_callback_add(map, "overlay,clicked", _overlay_cb, map);
|
||||
|
||||
// Create Overlays
|
||||
|
@ -820,6 +870,7 @@ test_map(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __
|
|||
elm_map_overlay_class_append(grp1, ovl_4);
|
||||
elm_map_overlay_class_append(grp1, ovl_5);
|
||||
elm_map_overlay_class_append(grp1, ovl6);
|
||||
evas_object_smart_callback_add(map, "overlay,clicked", _overlay_cb, map);
|
||||
|
||||
// Append overlays to groups
|
||||
grp2 = elm_map_overlay_class_add(map);
|
||||
|
|
|
@ -41,13 +41,13 @@ external_map_state_set(void *data __UNUSED__, Evas_Object *obj, const void *from
|
|||
|
||||
if (p->map_source)
|
||||
{
|
||||
elm_map_source_name_set(obj, p->map_source);
|
||||
elm_map_source_set(obj, ELM_MAP_SOURCE_TYPE_TILE, p->map_source);
|
||||
}
|
||||
if (p->zoom_mode)
|
||||
{
|
||||
Elm_Map_Zoom_Mode set = _zoom_mode_get(p->zoom_mode);
|
||||
if (set == ELM_MAP_ZOOM_MODE_LAST) return;
|
||||
elm_map_zoom_mode_set(obj, set);
|
||||
Elm_Map_Zoom_Mode set = _zoom_mode_get(p->zoom_mode);
|
||||
if (set == ELM_MAP_ZOOM_MODE_LAST) return;
|
||||
elm_map_zoom_mode_set(obj, set);
|
||||
}
|
||||
if (p->zoom_set) elm_map_zoom_set(obj, p->zoom);
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ external_map_param_set(void *data __UNUSED__, Evas_Object *obj, const Edje_Exter
|
|||
{
|
||||
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE)
|
||||
{
|
||||
elm_map_source_name_set(obj, param->s);
|
||||
elm_map_source_set(obj, ELM_MAP_SOURCE_TYPE_TILE, param->s);
|
||||
return EINA_TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -95,7 +95,7 @@ external_map_param_get(void *data __UNUSED__, const Evas_Object *obj, Edje_Exter
|
|||
{
|
||||
if (param->type == EDJE_EXTERNAL_PARAM_TYPE_CHOICE)
|
||||
{
|
||||
const char *set = elm_map_source_name_get(obj);
|
||||
const char *set = elm_map_source_get(obj, ELM_MAP_SOURCE_TYPE_TILE);
|
||||
param->s = set;
|
||||
return EINA_TRUE;
|
||||
}
|
||||
|
|
|
@ -112,8 +112,7 @@ elm_main(int argc __UNUSED__, char **argv __UNUSED__)
|
|||
evas_object_smart_callback_add(bt, "clicked", _bt_zoom_fill, map);
|
||||
|
||||
elm_map_zoom_set(map, 12);
|
||||
elm_map_geo_region_show(map, -43.2, -22.9);
|
||||
|
||||
elm_map_region_show(map, -43.2, -22.9);
|
||||
evas_object_resize(win, 512, 512);
|
||||
evas_object_show(win);
|
||||
|
||||
|
|
|
@ -22,10 +22,20 @@ typedef struct _Example_Data
|
|||
Elm_Map_Route *route;
|
||||
double start_lon, start_lat, dest_lon, dest_lat;
|
||||
Elm_Map_Name *name;
|
||||
Elm_Map_Overlay *route_ovl;
|
||||
} Example_Data;
|
||||
|
||||
static Example_Data example_data;
|
||||
|
||||
static void
|
||||
_route_loaded(void *data, Evas_Object *obj, void *ev __UNUSED__)
|
||||
{
|
||||
Example_Data *example_data = data;
|
||||
|
||||
example_data->route_ovl = elm_map_overlay_route_add(obj, example_data->route);
|
||||
elm_map_overlay_color_set(example_data->route_ovl, 0, 255, 0, 255);
|
||||
}
|
||||
|
||||
static void
|
||||
_name_loaded(void *data, Evas_Object *obj, void *ev __UNUSED__)
|
||||
{
|
||||
|
@ -41,8 +51,8 @@ _name_loaded(void *data, Evas_Object *obj, void *ev __UNUSED__)
|
|||
example_data->route = elm_map_route_add(map, ELM_MAP_ROUTE_TYPE_FOOT,
|
||||
ELM_MAP_ROUTE_METHOD_SHORTEST,
|
||||
example_data->start_lon, example_data->start_lat,
|
||||
example_data->dest_lon, example_data->dest_lat);
|
||||
elm_map_route_color_set(example_data->route, 0, 255, 0, 255);
|
||||
example_data->dest_lon, example_data->dest_lat,
|
||||
NULL, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -55,9 +65,10 @@ _bt_route(void *data, Evas_Object *obj __UNUSED__, void *ev __UNUSED__)
|
|||
map = example_data->map;
|
||||
address = (char *)elm_object_text_get(example_data->entry);
|
||||
|
||||
example_data->name = elm_map_utils_convert_name_into_coord(map, address);
|
||||
example_data->name = elm_map_name_add(map, address, 0, 0, NULL, NULL);
|
||||
|
||||
evas_object_smart_callback_add(map, "name,loaded", _name_loaded, data);
|
||||
evas_object_smart_callback_add(map, "route,loaded", _route_loaded, data);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -187,7 +198,7 @@ elm_main(int argc __UNUSED__, char **argv __UNUSED__)
|
|||
example_data.start_lat = -22.97;
|
||||
|
||||
elm_map_zoom_set(map, 12);
|
||||
elm_map_geo_region_show(map, example_data.start_lon, example_data.start_lat);
|
||||
elm_map_region_show(map, example_data.start_lon, example_data.start_lat);
|
||||
|
||||
evas_object_resize(win, 512, 512);
|
||||
evas_object_show(win);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -5,25 +5,25 @@
|
|||
#endif
|
||||
|
||||
EAPI char *
|
||||
map_module_source_get(void)
|
||||
map_module_source_name_get(void)
|
||||
{
|
||||
return strdup("test_map");
|
||||
}
|
||||
|
||||
EAPI int
|
||||
map_module_zoom_min_get(void)
|
||||
map_module_tile_zoom_min_get(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
EAPI int
|
||||
map_module_zoom_max_get(void)
|
||||
map_module_tile_zoom_max_get(void)
|
||||
{
|
||||
return 18;
|
||||
}
|
||||
|
||||
EAPI char *
|
||||
map_module_url_get(Evas_Object *obj __UNUSED__, int x, int y, int zoom)
|
||||
map_module_tile_url_get(Evas_Object *obj __UNUSED__, int x, int y, int zoom)
|
||||
{
|
||||
char buf[PATH_MAX];
|
||||
snprintf(buf, sizeof(buf), "http://tile.openstreetmap.org/%d/%d/%d.png",
|
||||
|
@ -31,32 +31,32 @@ map_module_url_get(Evas_Object *obj __UNUSED__, int x, int y, int zoom)
|
|||
return strdup(buf);
|
||||
}
|
||||
|
||||
EAPI int
|
||||
EAPI char *
|
||||
map_module_route_source_get(void)
|
||||
{
|
||||
return 0;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
EAPI char *
|
||||
map_module_route_url_get(Evas_Object *obj __UNUSED__, char *type_name __UNUSED__, int method __UNUSED__, double flon __UNUSED__, double flat __UNUSED__, double tlon __UNUSED__, double tlat __UNUSED__)
|
||||
map_module_route_url_get(Evas_Object *obj __UNUSED__, const char *type_name __UNUSED__, int method __UNUSED__, double flon __UNUSED__, double flat __UNUSED__, double tlon __UNUSED__, double tlat __UNUSED__)
|
||||
{
|
||||
return strdup("");
|
||||
}
|
||||
|
||||
EAPI char *
|
||||
map_module_name_url_get(Evas_Object *obj __UNUSED__, int method __UNUSED__, char *name __UNUSED__, double lon __UNUSED__, double lat __UNUSED__)
|
||||
map_module_name_url_get(Evas_Object *obj __UNUSED__, int method __UNUSED__, const char *name __UNUSED__, double lon __UNUSED__, double lat __UNUSED__)
|
||||
{
|
||||
return strdup("");
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
map_module_geo_into_coord(const Evas_Object *obj __UNUSED__, int zoom __UNUSED__, double lon __UNUSED__, double lat __UNUSED__, int size __UNUSED__, int *x __UNUSED__, int *y __UNUSED__)
|
||||
map_module_tile_geo_to_coord(const Evas_Object *obj __UNUSED__, int zoom __UNUSED__, double lon __UNUSED__, double lat __UNUSED__, int size __UNUSED__, int *x __UNUSED__, int *y __UNUSED__)
|
||||
{
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
map_module_coord_into_geo(const Evas_Object *obj __UNUSED__, int zoom __UNUSED__, int x __UNUSED__, int y __UNUSED__, int size __UNUSED__, double *lon __UNUSED__, double *lat __UNUSED__)
|
||||
map_module_tile_coord_to_geo(const Evas_Object *obj __UNUSED__, int zoom __UNUSED__, int x __UNUSED__, int y __UNUSED__, int size __UNUSED__, double *lon __UNUSED__, double *lat __UNUSED__)
|
||||
{
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue