On Mon, 9 Jan 2012 14:30:14 +0900 Bluezery <ohpo...@gmail.com> said: i'm catching up on my backlog :)
> 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. agreed. u want to be able to place custom objects and have elm_map manage their position AND size and you give elm_map geographical coordinates/sizes. markers are actually this - they are just 0x0 in size :) > 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) i'd go for offering to set a custom object - elm_map just handles positioning and sizing. your object can be a smart obj that then fills in/adjusts its content appropriately. i DO see a good point for specific handling of polygon, line and marker as these then can share a standardised common look (for lines i'd actually use edje objects per line segment with an edje object per point and use evas's "map" feature to rotate the objects to the right angle so u get something like: o--o o--------o \ | o--o ) polygon i might dothe same with poly outline made up of a series of objects turned into line segments as above just with ALSO a filled middle. evas's polygons are really limited (solid colors) so there isnt a lot interesting you can do here at the moment - maybe in the future it can be made nicer, but this is then transparent to the app as they dont have to do it themselves > 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). yup. > 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: i'm also thinking osm and such should also be available modules too... :) > 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. we have 1 problem here.. we need to release elementary 1.0 - that means after that no api BREAKS. you can break api now - this is your final chance. you have maybe 1-2 months or so to do it, after that you will be stuck with the api you have. you can ADD, but can't remove or change. so my suggestion is - do whatever api changes you need now with no internal big changes, make it ABLE to be added to in future cleanly and without trouble. :) > -- > BRs, > Kim. > > ------------------------------------------------------------------------------ > Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex > infrastructure or vast IT resources to deliver seamless, secure access to > virtual desktops. With this all-in-one solution, easily deploy virtual > desktops for less than the cost of PCs and save 60% on VDI infrastructure > costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox > _______________________________________________ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel