I think that no replay means I am allowed to do this~!! hahaha... Anyway, this will make huge changes in elm_map. I look forward that someone will review my changes. :D
2012/1/9 Bluezery <ohpo...@gmail.com>: > Dear all, > > I am interested in elementary map and working on it after past 2~3 months. > I found some issues to be discussed with EFL developers. > > 1) Overlay Support > For App. developers (users), elm_map only supports marker overlay. If > users want to overlay line or polygon, users should make it' own evas > object. > But elm_map uses geographical coordinates as default, not x, y > coordinates. So users should trace the scroller events and move the > object. > It is uncomfortable for users. elm_map should trace this and move the object. > So, I think that elm_map should support overlay APIs for this reason > as follows. > > a). Common overlay > * Object: Elm_Map_Overlay > * APIs: > elm_map_overlay_del(Evas_Object *map, Elm_Map_Overlay *overlay) > elm_map_overlay_region_show() > elm_map_overlay_geo_set() > elm_map_overlay_style_set() > elm_map_overlay_icon_set() > elm_map_overlay_content_set() > elm_map_overlay_del_cb_set() > ..., etc. > > b) Group > Elm_Map_Overlay *elm_map_overlay_group_add(Evas_Object *map) > void elm_map_overlay_group_zoom_max_set(Evas_Object *map, > Elm_Map_Overlay *group, int zoom) > > b) Marker > Elm_Map_Overlay *elm_map_overlay_marker_add(Evas_Object *map) > > c) Line > Elm_Map_Overlay *elm_map_overlay_line_add(Evas_Object *map, double > start_lon, double start_lat, double end_lon, double end_lat) > > d) Polygon > Elm_Map_Overlay *elm_map_overlay_polygon_add(Evas_Object *map) > void elm_map_overlay_polygon_geo_add(Evas_Object *map, Elm_Map_Overlay > *polygon, double lon, double lat) > void elm_map_overlay_polygon_geo_clear(Evas_Object *map, > Elm_Map_Overlay *polygon, double lon, double lat) > > etc) Scale, Circle, ... as needed. > > Common overlay object provides common APIs and users can add any overlay > object. > > > 2) External Service (Provider) > Elm_map supports external services (tiles, Routes, Geocoding) > There are three ways to support external services in elm_map. > One is hard-coded way (OSM). The other way is plug-in (module) and > EMap (PROTO/emap). > > Hard-coded ways are better for open provider (e.g. OSM) as they are > now (build-time). > Module ways are better for platform dependent commercial provider such > as googlel map, bing map (loading time). > Emap ways are better for users(App. developers) to make it's own style > of map (runtime). > > However, those are not categorized, hard to understand and not easy to > use as follows: > elm_map_source_names_get (tiles) > elm_map_utils_convert_coord_into_geo (tiles) > elm_map_route_add (route) > elm_map_utils_convert_coord_into_name (Geoname) > elm_map_track_add (emap) > ..., etc. > > I found that this was discussed previously --> > http://www.mail-archive.com/enlightenment-devel@lists.sourceforge.net/msg32179.html > But it was only said about emap ways (separated from elm_map) > Also I found that PROTO/emap. But emap currently only supports track > (gpx file). Also maintainers disappeared....;( > > I think that those APIs should be categorized as follows: > > a) Provider: > void elm_map_provider_del(Evas_Object *map, Elm_Map_Provider *provider) > Eina_List *elm_map_provider_get(Evas_Object *map, Elm_Map_Provider_Type type) > void elm_map_provider_set(Evas_Object *map, Elm_Map_Provider_Type > type, const Elm_Map_Provider *provider) > > Elm_Map_Provider *elm_map_provider_tile_add(Evas_Object *map, EMap_Tile *emap) > Elm_Map_Provider *elm_map_provider_geoname_add(Evas_Object *map, > EMap_Geoname *route) > Elm_Map_Provider *elm_map_provider_route_add(Evas_Object *map, EMap_Route > *emap) > Elm_Map_Provider *elm_map_provider_poi_add(Evas_Object *map, EMap_POI *emap) > > b) Geoname (Mixed with projection APIs) > void elm_map_convert_address_into_geo() > void elm_map_convert_geo_into_address() > > c) Route (Mixed with overlay APIs) > Elm_Map_Overlay *elm_map_overlay_route_add(Evas_Object *map, ...) > void elm_map_route_details_get(Evas_Object *map, Elm_Map_Overlay *overlay, > ...) > > d) POI (Point Of Interests): > Elm_Map_Overlay *elm_map_overlay_poi_add(Evas_Object *map, ...) > void elm_map_poi_details_get(Evas_Object *map, Elm_Map_Overlay *overlay, ...) > > etc) EMap > emap _tile_new() > emap_route_new() (This already exists) > emap_geoname_new() --> same as > emap_poi_new() > ... etc. > > > 3) Property > AFAIK, property setting for evas object is only implemented by APIs. > There needs more APIs for map object property > > elm_map_zoom_max_set/get > elm_map_zoom_min_set/get > elm_map_scroller_freeze_set/get > elm_map_gesture_disabled_set/get (elm_config should override this > property if so) > > 4) Signals > "load,detail", "loaded,detail", "downloaded", "route,load", > "route,loaded"names may be changed. > --> "tile,load,start", "tile,loaded, "tile,load,failed", > "tile,download,start", "tile,downloaded", tile,download,failed", > "route,load,start", "route,loaded", "route,load,failed" > > "name,load", "name,loaded" --> this is not suitable for signals, > elm_map_convert_address_into_geo() & elm_map_convert_geo_into_address > should be asynchronous functions. > > > > In summarize, I have mentioned overlay support, provider > categorization, property APIs suggestion, signal change. > Above things will make a big changes in elm_map. But it will makes > elm_map better and widely used. > I'd like that EFL developers review my suggestion and add many > comments on these. > > -- > BRs, > Kim. -- BRs, Kim. ------------------------------------------------------------------------------ RSA(R) Conference 2012 Mar 27 - Feb 2 Save $400 by Jan. 27 Register now! http://p.sf.net/sfu/rsa-sfdev2dev2 _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel