History: CartoGraf
Preview of version: 394
CartoGraf is an interactive web-based mapping application to enhance learning in history and geography classes in high schools. CartoGraf is mainly based on Maps, Drawings, PluginAppFrame and Trackers. It is a great example of how to use profiles in a general purpose app (Tiki) to make a very specific application.
As of June 2012, it is in Beta. You can play with the demo at: http://demo.tiki.org/cartograf/ (password is at: http://demo.tiki.org/)
To get your own copy of CartoGraf
We hope you like it and please do join the community!
Work in Progress...
(Do not use Kaltura wikiplugin as it is not enabled in default install when viewing the profile before apply)
Using:
2- Dans l'onglet map, il faut ajouter le lien « Mes carte » vers la pages "My Maps"
This is not trivial because "How do I save the current map view an an image, or print it?
OpenLayers itself doesn't handle printing, nor saving the image to a single image. This is because OpenLayers is actually an illusion, created by many different images being creatively overlaid in your browser's div. The only place the entire map exists, is in your browser's imagination. Nevertheless, there are a few options."
Source: http://trac.osgeo.org/openlayers/wiki/Printing
As of June 2012, it is in Beta. You can play with the demo at: http://demo.tiki.org/cartograf/ (password is at: http://demo.tiki.org/)
To get your own copy of CartoGraf
- Download and Install
Tiki9As of 2012-07-10, you need to get trunk (future Tiki10) for the latest and greatest goodies :-) (Use the Daily Build of from SVN) - Apply the CartoGraf profile
- Follow the profile Setup instructions
We hope you like it and please do join the community!
Work in Progress...
(Do not use Kaltura wikiplugin as it is not enabled in default install when viewing the profile before apply)
General
Copy to clipboard
instructions: Setup preferences: feature_sefurl: y allowRegister: y browsertitle: CartoGraf Project tracker_refresh_itemlink_detail: y header_custom_css: wikicontent:CartoGraf_CustomCSS geo_always_load_openlayers: y url_after_validation: Account_Validated feature_jquery_ui_theme: start feature_left_column: n tracker_clone_item: y toolbar_trackers: bold,list,numlist,wikiplugin_youtube fgal_tracker_existing_search: y fgal_elfinder_feature: y
Permissions
Copy to clipboard
permissions: Anonymous: allow: - search - view_trackers - tracker_view_attachments Registered: allow: - attach_trackers - create_tracker_items - add_object - remove_object - upload_files
Users
Copy to clipboard
objects: - type: users data: name: $profilerequest:Test User 1 Login Name:$demo$ email: $profilerequest:User 1 Email (optional):$ $ groups: [ $profilerequest:Groups User 1 should be assigned (for more groups separate them by comma):$Registered$ ]
Look & Feel
Copy to clipboard
preferences: style: CartoGraf.css feature_fixed_width: n jquery_ui_selectmenu: y feature_page_title: n feature_sitelogo: y wiki_edit_plugin: n sitelogo_src: styles/CartoGraf/logo.gif
Menus
Copy to clipboard
objects: - type: menu ref: CartoGraf_Top_menu data: name: Top description: A menu containing the base navigation of the site collapse: none items: - name: Home url: ((HomePage)) - name: My Maps url: ((MyMaps)) - name: Partners url: ((Partners)) - name: Help url: ((Help)) - name: Setup url: ((Setup)) permissions: [ admin ] - type: menu ref: CartoGraf_RightEdge_menu data: name: RightEdge description: collapse: none items: - name: Register url: tiki-register.php - name: Demo url: ((Demo)) - name: Contact url: ((Contact))
Modules
Copy to clipboard
preferences: modseparateanon: y objects: - type: module ref: LiveHeaderMap_module data: position: top order: 0 name: LiveHeaderMap groups: [ Anonymous, Registered ] params: nopage: Map custom: <div id="TheLiveHeaderMap" style="height:188px"></div> - type: module ref: LocationSearch_module data: position: top order: 49 #ensure the map location search is assigned as last module name: map_search_location groups: [ Registered ] params: legacy_mode: search_box show_search_button: y show_go_button: n show_edit_button: n default_button: search page: Map nobox: y style: "float: right; margin-right: 15px" #most of the params ignored as the module is not standard and does have no module div rendered but just the form tag (TODO: fix in Tiki) - type: module ref: TopMenu_module data: position: top order: 1 name: menu groups: [ Anonymous, Registered ] params: id: $CartoGraf_Top_menu type:horiz css:y menu_id:TopMenu translate:y nobox:y decorations:n notitle:y style: "float: left; margin-left: 350px" - type: module ref: RightEdgeMenu_module data: position: right order: 1 name: menu groups: [ Anonymous ] params: id: $CartoGraf_RightEdge_menu menu_id: RightEdgeMenu nobox: y nopage: Map
Features
Copy to clipboard
preferences: feature_wiki: y feature_articles: n feature_mytiki: n feature_trackers: y geo_tilesets: [mapquest_street, mapquest_aerial, google_street, google_satellite, google_physical, google_hybrid, blank] geo_google_streetview: y geo_google_streetview_overlay: y wikiplugin_appframe: y wikiplugin_list: y feature_search: y feature_wiki_argvariable: y trackerfield_geographicfeature: y fgal_upload_from_source: y
Drawing
Copy to clipboard
preferences: feature_draw: y feature_draw_hide_buttons: ellipse_cx, tool_ellipse_cy, tool_ellipse_rx, tool_ellipse_ry, rect_width_tool, rect_height_tool, cornerRadiusLabel, tool_eyedropper, view_grid, tool_angle, tool_blur, tool_position, xy_panel, marker_panel, tool_reorient, rulers, tool_source, tool_zoom, tool_eyedropper, view_grid, tool_wireframe, line_panel, main_button
Trackers
Points of interest
Copy to clipboard
objects: - type: tracker ref: pointsOfInterest data: name: Points of interest allow: [creator_modification, creator_deletion] show: list_modification_date section_format: tab - type: tracker_option data: tracker: $pointsOfInterest name: popup_fields value: "$profileobject:poiImage$,$profileobject:poiDescription$" - type: tracker_field ref: poiName data: order: 10 name: Name type: text_field tracker: $pointsOfInterest flags: [ mandatory, list, title, link, searchable ] - type: tracker_field ref: poiDescription data: order: 20 name: Description type: text_area options: "1,,20" tracker: $pointsOfInterest flags: [ ] - type: tracker_field ref: poiIcon data: order: 30 name: Icon type: icon tracker: $pointsOfInterest flags: [ list ] options: "$profileobject:iconContainer$" - type: tracker_field ref: poiCoordinates data: order: 40 name: Coordinates type: header tracker: $pointsOfInterest - type: tracker_field ref: poiLocation data: order: 50 name: Location type: map options: "1" tracker: $pointsOfInterest flags: [ mandatory ] - type: tracker_field ref: poiAttachments data: order: 60 name: Attachments type: header tracker: $pointsOfInterest - type: tracker_field ref: poiImage data: order: 70 name: Image type: files options: "$profileobject:imageContainer$,image/*,1,1" tracker: $pointsOfInterest flags: [ ] - type: tracker_field ref: poiDetails data: order: 80 name: Details type: header tracker: $pointsOfInterest - type: tracker_field ref: poiMap data: order: 90 name: Map type: item_link options: "$profileobject:maps$,$profileobject:mapName$,0,,opc,,,,0,0,exact,one,0,$profileobject:mapShareCode$" tracker: $pointsOfInterest flags: [ mandatory, list, title, searchable ] permname: map visible: immutable - type: tracker_field ref: poiFinder data: order: 100 name: Finder type: user options: "1" tracker: $pointsOfInterest flags: [ mandatory, list ] permname: finder visible: immutable
Zones
This is both for polygons and pathsCopy to clipboard
objects: - type: tracker ref: zones data: name: Zones allow: [creator_modification, creator_deletion] show: list_modification_date section_format: tab - type: tracker_option data: tracker: $zones name: popup_fields value: "$profileobject:zoneImage$,$profileobject:zoneDescription$" - type: tracker_field ref: zoneName data: order: 10 name: Name type: text_field tracker: $zones flags: [ list, title, link, searchable ] - type: tracker_field ref: zoneDescription data: order: 20 name: Description type: text_area options: "1,,20" tracker: $zones flags: [ ] - type: tracker_field ref: zoneAttachments data: order: 30 name: Attachments type: header tracker: $zones - type: tracker_field ref: zoneImage data: order: 40 name: Image type: files options: "$profileobject:imageContainer$,image/*,1,1" tracker: $zones flags: [ ] - type: tracker_field ref: zoneDetails data: order: 50 name: Details type: header tracker: $zones - type: tracker_field ref: zoneMap data: order: 60 name: Map type: item_link options: "$profileobject:maps$,$profileobject:mapName$,0,,opc,,,,0,0,exact,one,0,$profileobject:mapShareCode$" tracker: $zones flags: [ mandatory, list, title, searchable ] permname: map visible: immutable - type: tracker_field ref: zoneFinder data: order: 70 name: Finder type: user options: "1" tracker: $zones flags: [ mandatory, list ] permname: finder visible: immutable - type: tracker_field ref: zoneFeature data: order: 80 name: Zone type: geographic_feature options: "" tracker: $zones flags: [ mandatory ]
Maps
Copy to clipboard
objects: - type: tracker ref: maps data: name: Maps allow: [creator_modification, creator_deletion] show: list_modification_date section_format: tab - type: tracker_option data: tracker: $maps name: popup_fields value: "$profileobject:mapDescription$" - type: tracker_field ref: mapName data: name: Name type: text_field tracker: $maps order: 10 flags: [ mandatory, list, title, link, searchable ] - type: tracker_field ref: mapDescription data: name: Instructions type: text_area options: "1,,20" tracker: $maps order: 20 flags: [ searchable ] - type: tracker_field ref: mapShareCode data: name: Share Code type: text_field tracker: $maps flags: [ list ] options: "0,10,,,15 order: 30 permname: shareCode - type: tracker_field ref: mapDetailsHeader data: name: Details type: header tracker: $maps order: 40 - type: tracker_field ref: mapBaseLocation data: name: Base Location type: map tracker: $maps order: 50 flags: [ mandatory ] - type: tracker_field ref: mapOwner data: name: Owner type: user options: "1" tracker: $maps order: 60 flags: [ mandatory, list ] permname: owner visible: immutable
Legends
Copy to clipboard
objects: - type: tracker ref: legend data: name: Legend allow: [creator_modification, creator_deletion] show: list_modification_date - type: tracker_field ref: legendIcon data: name: Icon type: icon tracker: $legend flags: [ mandatory, list ] order: 10 options: "$profileobject:iconContainer$" - type: tracker_field ref: legendText data: name: Text type: text_field tracker: $legend order: 20 flags: [ mandatory, list, title, link, searchable ] - type: tracker_field ref: legendMap data: name: Map type: item_link options: "$profileobject:maps$,$profileobject:mapName$,0,,opc,,,,0,0,exact,one,0,$profileobject:mapShareCode$" tracker: $legend flags: [ mandatory, list, title, searchable ] permname: map order: 30 visible: immutable - type: tracker_field ref: legendFinder data: name: Finder type: user options: "1" tracker: $legend order: 40 flags: [ mandatory, list ] permname: finder visible: immutable
File Galleries
Copy to clipboard
objects: - type: file_gallery ref: iconContainer data: parent: 1 name: Icons description: Icons available for selection in the map. owner: admin archives: 5 flags: [ public, visible ] column: [ icon, name, created, creator, files ] init_files: - http://profiles.tiki.org/pics/icons/plugin.png - type: file_gallery ref: imageContainer data: parent: 1 name: Image Uploads description: Images uploaded by students owner: admin archives: -1 flags: [ public, visible ] column: [ icon, name, created, creator, files ] - type: file_gallery ref: imageBank data: parent: 1 name: Image Bank description: Images uploaded by site admins, for use by teachers and students owner: admin archives: -1 flags: [ public, visible ] column: [ icon, name, created, creator, files ]
Wiki Pages
Copy to clipboard
objects: - type: wiki_page ref: home_page data: name: HomePage content: wikicontent:CartoGraf_HomePage - type: wiki_page ref: cartograf_setup data: name: Setup description: Post-Profile Setup Instructions lang: en content: wikicontent:CartoGraf_Setup - type: wiki_page ref: cartograf_help data: name: Help description: Help lang: en content: wikicontent:CartoGraf_Help - type: wiki_page ref: account_validated_page data: name: Account_Validated description: Account Validated lang: en content: wikicontent:CartoGraf_NewAccountValidationIncludedPage - type: wiki_page ref: demo_page data: name: Demo lang: en content: wikicontent:CartoGraf_Demo - type: wiki_page ref: partners_page data: name: Partners lang: en content: wikicontent:CartoGraf_Partners - type: wiki_page ref: contact_page data: name: Contact lang: en content: wikicontent:CartoGraf_Contact
Application Frame Pages
Copy to clipboard
objects: - type: wiki_page ref: mymaps_page data: name: MyMaps content: wikicontent:CartoGraf_MyMaps - type: wiki_page ref: map_page data: name: Map content: wikicontent:CartoGraf_Map - type: wiki_page ref: mapcanvas_share_page data: name: MapCanvasShare content: wikicontent:CartoGraf_MapCanvasShare - type: wiki_page ref: mapcanvas_solo_page data: name: MapCanvasSolo content: wikicontent:CartoGraf_MapCanvasSolo - type: wiki_page ref: mapselector_page data: name: MapSelector content: wikicontent:CartoGraf_MapSelector
Using:
- CartoGraf_HomePage
- CartoGraf_LiveHeaderMap
- CartoGraf_Setup
- CartoGraf_Help
- CartoGraf_MyMaps
- CartoGraf_Map
- CartoGraf_MapCanvasShare
- CartoGraf_MapCanvasSolo
- CartoGraf_MapSelector
- CartoGraf_NewAccountValidationIncludedPage
Developer notes
- When you apply the profile, you may see "Preference set: geo_tilesets=Array" in the response. This is a cosmetic error. The preference is set correctly.
Copy to clipboard
php installer/shell.php install; sh setup.sh; php lib/search/shell.php rebuild; php lib/profilelib/shell.php install CartoGraf; php lib/profilelib/shell.php install Screencast ; sh setup.sh; php lib/search/shell.php rebuild; sh setup.sh
Todos
Marc
Other notes
1- Une fois logué, il faut que la page arrive sur la liste de carte (MyMaps), ce n'est pas le cas actuellement2- Dans l'onglet map, il faut ajouter le lien « Mes carte » vers la pages "My Maps"
Print/image capture solution
Use case: export an image for inclusion in a website, a slideshow or a word processor.This is not trivial because "How do I save the current map view an an image, or print it?
OpenLayers itself doesn't handle printing, nor saving the image to a single image. This is because OpenLayers is actually an illusion, created by many different images being creatively overlaid in your browser's div. The only place the entire map exists, is in your browser's imagination. Nevertheless, there are a few options."
Source: http://trac.osgeo.org/openlayers/wiki/Printing
- http://dev.openlayers.org/sandbox/camptocamp/canvas/openlayers/examples/exportMapCanvas.html (The demo works for Firefox but will it work for us?)
- http://trac.osgeo.org/openlayers/wiki/Printing
- All require additional software
- http://gis.stackexchange.com/questions/22445/print-library-for-open-layers
- http://dev.openlayers.org/sandbox/camptocamp/canvas/openlayers/examples/exportMapCanvas.html
- Not all browsers but could be tested
- http://dev.openlayers.org/sandbox/camptocamp/canvas/openlayers/examples/exportMapCanvas.html
- wkhtmltoimage
- Won't do javascript, thus, no PoI and zones
- jCapture
- Follow-up with Pavel with respect to 1- Save as... 2- configurable prefs
- How about saving all to 1 file HTML? http://www.greywyvern.com/code/php/phf-demo
- Unsure or reliability
- Can't paste to word processor
Image bank
- Clarify use case: It is forked/copied because we don't want the SVG overlay.
- The current file search has problems
- Doesn't work for Street View images
- If one person draws on them, that drawing appears for all
- There is no visual browse
- http://elfinder.org/ has a lot of features but doesn't really look like http://doc.tiki.org/dl38
- Maybe we need more PluginGalleriffic?
- There are also: PluginColorbox, PluginCarousel, PluginFiles and PluginSlider
- Maybe we need more PluginGalleriffic?
- http://elfinder.org/ has a lot of features but doesn't really look like http://doc.tiki.org/dl38
- What are permissions?
- Site admins add pictures
- All registered users can copy them to their accounts
SVG-edit
- Get commit access for Robert so things like this can be resolved
- Why is opacity disappearing? Fixed via http://code.google.com/p/svg-edit/issues/detail?id=973
luci
- Replace http://demo.tiki.org/cartograf/styles/CartoGraf/img/btnOutils_1.png with something that looks like an "edit" button like what you would have in any other software. The user should get that this is to edit the marker.
- Like Google Maps: http://wiki.openstreetmap.org/wiki/MapQuest#MapQuest-hosted_map_tiles
- Make SVG-edit nicer as attempted here: tiki-download_wiki_attachment.php?attId=67&download=y, tiki-download_wiki_attachment.php?attId=68&download=y
- Copy to clipboard#LiveHeaderMap {background: url("http://profiles.tiki.org/tiki-download_wiki_attachment.php?attId=65") center -130px repeat-x;}
- Can CartoGraf_LiveHeaderMap be deleted? If so, please proceed
- Please move up right-hand pop-out sliders to be higher on the page, as when they open up, we need all the space we can get
- If possible, jQuery pop-up make smaller when there is not a lot of content (better for small screens)
- Hide the right-hand button/link to tiki-register.php when user is Registered.
Jonny
- UI of file field type for trackers.
-
Integrate http://elfinder.org/ as a file browser / pickerDone- Can you add a way to restrict to certain file galleries (ex.: Gallery #3 and children)
- Perhaps thumbnails could be bigger than now, so as to not have to preview each image
- Ideally, as well make the image visible after upload (right now, it's just the text of the name of the file)
- The image should be copied (forked) as if it was an image from an external site. Copied from File Gallery "ref: imageBank" (populated by site admins) to "ref: imageContainer" (Images uploaded by students)
- Since this is the less common use case, another option to use/link would make a lot of sense
-
-
Bookmarkable slide-out of right hand sliders and/or some wizard-like pop-ups to explain to the user how it works (start using http://framindmap.org/framindmap.html to see what I mean). So we can link/document to how to create a map (now you need to know to open the slider)Done - text areas now have a height, which works in system tracker interface, but not via the end user interface to create maps
- Add a tracker setting to make tracker management via tiki-view_tracker.php accessible only to tiki_p_admin_trackers for that tracker (or a similar strategy to reach this objective)
- Hide background wiki page while map loads (fraction of a second of ugliness)
- The site requires IE9 (which is required for SVG-edit): can we have some sort of bubble, overlay, topline or something to warn users they have to upgrade their browser? Related: https://dev.tiki.org/item2710
- Add a "duplicate map" link/button in the map slideout box. Ideally, it asks for name of new map, if not, it calls it ABC-copy (ABC-copie in French)
- Ideally a delete map button as well ( see with LPH )
LP
-
After adding a polygon or a path, go in edit mode to add information to what you just created - Add a way for a user to delete his own map
- bug; username with a - causes an issue. Not possible to add POIs
- At the end, make a French language profile for content and the top-level icons
- When site is in French, SVG-edit is as well
Robert
- SVG-edit
- Find a way to use http://code.google.com/p/svg-edit/wiki/ConfigOptions
- Default opacity should be configurable via Tiki (we want 50% for CartoGraf)
- Find a way to use http://code.google.com/p/svg-edit/wiki/ConfigOptions
- Sometimes, SVG-edit starts without a background canvas. Any idea why?
Testing with 2 registered users
Sharing
Joining
- Test: Registered user should only be able to draw on own pictures
- Can user A join a map of user B?
Duplicating
- Can user A duplicate/fork a map of user B? (but not join)
- In which case, all the elements are independant, and can be deleted. If map
Phase 2
Other ideas
- tracker logging in profile?
Community building
- A started profile with realistic course data
- More videos
- More docs
- A microsite would be nice but need to think of maintainability