CartoGraf is an interactive web-based mapping application to enhance learning in history and geography classes in high schools.
CartoGraf makes is mainly based on
Maps,
Drawings,
PluginAppFrame and
Trackers. This is a great example of how to use profiles to use a general purpose app (Tiki) to make a very specific application.
It will be launched in June 2012.
To get your own copy of CartoGraf
- Download and Install Tiki9 (Use the Daily Build until 9.0 is officially released.
- Apply the CartoGraf profile
- Follow the profile instructions
We hope you like it and please do join the community!
Work in Progress...
General
YAML
instructions: Instructions
preferences:
allowRegister: y
feature_custom_html_head_content: '<script src="http://www.openlayers.org/api/OpenLayers.js"></script>'
header_custom_js: wikicontent:CartoGraf_LiveHeaderMap
url_after_validation: Account_Validated
Permissions
YAML
permissions:
Anonymous:
allow:
- search
Registered:
allow:
- tracker_view_comments
- tracker_view_ratings
- view_trackers
- view_trackers_pending
- tracker_view_attachments
- attach_trackers
- comment
- comment_tracker_items
- create_tracker_items
- add_object
- remove_object
- upload_files
Look & Feel
YAML
preferences:
style: CartoGraf.css
feature_fixed_width: n
feature_page_title: n
feature_sitelogo: y
wiki_edit_plugin: n
sitelogo_src: styles/CartoGraf/logo.gif
YAML
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: Partners
url: ((Partners))
-
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
YAML
preferences:
modseparateanon: y
objects:
-
type: module
ref: LiveHeaderMap_module
data:
position: top
order: 0
name: LiveHeaderMap
groups: [ Anonymous, Registered ]
custom: <div id="TheLiveHeaderMap" style="height:230px"></div>
-
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
Features
YAML
preferences:
feature_wiki: y
feature_articles: n
feature_draw: y
feature_mytiki: n
feature_trackers: y
geo_tilesets: [google_physical, openstreetmap, google_street, google_satellite]
geo_google_streetview: y
wikiplugin_appframe: y
wikiplugin_list: y
feature_search: y
feature_wiki_argvariable: y
trackerfield_geographicfeature: y
fgal_upload_from_source: y
Trackers
YAML
objects:
-
type: tracker
ref: pointsOfInterest
data:
name: Points of interest
allow: creator_modification
show: list_modification_date
-
type: tracker_field
ref: poiName
data:
name: Name
type: text_field
tracker: $pointsOfInterest
flags: [ mandatory, list, title, link, searchable ]
-
type: tracker_field
ref: poiIcon
data:
name: Icon
type: icon
tracker: $pointsOfInterest
flags: [ list ]
options: "$profileobject:iconContainer$"
-
type: tracker_field
ref: poiMap
data:
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: admin_only
-
type: tracker_field
ref: poiLocation
data:
name: Location
type: map
options: "1"
tracker: $pointsOfInterest
flags: [ mandatory ]
-
type: tracker_field
ref: poiFinder
data:
name: Finder
type: user
options: "1"
tracker: $pointsOfInterest
flags: [ mandatory, list ]
permname: finder
visible: admin_only
-
type: tracker_field
ref: poiDescription
data:
name: Description
type: text_area
options: ""
tracker: $pointsOfInterest
flags: [ ]
-
type: tracker_field
ref: poiImage
data:
name: Image
type: files
options: "$profileobject:imageContainer$,image/*,1,1"
tracker: $pointsOfInterest
flags: [ ]
Zones Tracker
YAML
objects:
-
type: tracker
ref: zones
data:
name: Zones
allow: creator_modification
show: list_modification_date
-
type: tracker_field
ref: zoneName
data:
name: Name
type: text_field
tracker: $zones
flags: [ list, title, link, searchable ]
-
type: tracker_field
ref: zoneMap
data:
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
-
type: tracker_field
ref: zoneFeature
data:
name: Zone
type: geographic_feature
options: ""
tracker: $zones
flags: [ mandatory ]
-
type: tracker_field
ref: zoneFinder
data:
name: Finder
type: user
options: "1"
tracker: $zones
flags: [ mandatory, list ]
permname: finder
-
type: tracker_field
ref: zoneDescription
data:
name: Description
type: text_area
options: ""
tracker: $zones
flags: [ ]
-
type: tracker_field
ref: zoneImage
data:
name: Image
type: files
options: "$profileobject:imageContainer$,image/*,1,1"
tracker: $zones
flags: [ ]
Maps Tracker
YAML
objects:
-
type: tracker
ref: maps
data:
name: Maps
allow: creator_modification
show: list_modification_date
-
type: tracker_field
ref: mapName
data:
name: Name
type: text_field
tracker: $maps
flags: [ mandatory, list, title, link, searchable ]
-
type: tracker_field
ref: mapBaseLocation
data:
name: Base Location
type: map
tracker: $maps
flags: [ mandatory ]
-
type: tracker_field
ref: mapOwner
data:
name: Owner
type: user
options: "1"
tracker: $maps
flags: [ mandatory, list ]
permname: owner
-
type: tracker_field
ref: mapShareCode
data:
name: Share Code
type: text_field
tracker: $maps
flags: [ list ]
options: "0,10,,,15
permname: shareCode
File Galleries
YAML
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 ]
-
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 ]
Wiki Pages
YAML
objects:
-
type: wiki_page
ref: home_page
data:
name: HomePage
content: wikicontent:CartoGraf_HomePage
-
type: wiki_page
ref: instructions_page
data:
name: Instructions
description: Profile Instructions
lang: en
content: wikicontent:CartoGraf_Instructions
-
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
Application Frame Pages
YAML
objects:
-
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
-
type: wiki_page
ref: mapinfo_page
data:
name: MapInfo
content: wikicontent:CartoGraf_MapInfo
Using:
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.
- If you want a search box (until it appears in the design), put
{module name=map_search_location}
in the AppFrame at CartoGraf_Map.
Questions
- Meta data about maps
- No current way to edit after creation
- Should we add a description text area which will end up in the space instead of "placeholder"?
- Should we add test users?
- Map Legend
- For zones
- For POI icons?
- Where does it go?
- Map title
Bugs
- Drawing
- 2012-05-23: doesn't work on Street View images that are in pop-up (video sent to luci)
- 2012-05-23: Registered users don't have draw on image button
- 2012-05-23: Drawing works, but when you go back to view, SVG layer is visible but background in gone (but if you edit, it's OK)
- 2012-05-23: Drawing inteface is cluttered (too bigs, too many scrollbars)
- Maps
- 2012-05-23: IE9 is fine with OpenStreetMap but not the 3 Google layers
- 2012-05-23: Left hand grab and zoom icons should remain when in StreetView, TrackerInput and Draw mode
Todos
- Permit deletion of own entries and own zones
- Sharing & map selection: improve interface
- Add search box (which is currently in the tools section)
- Zone: is it colored with legend or we have meta-data like markers?