History of GmapPackage

Version 56

GmapPackage

A Wikid Google Map Engine

Created by: Will, Last modification: 12 Dec 2005 (04:04 UTC) by Will

Summary of Current State of Development


The core functionality of the GmapPackage is undergoing revision to make better use of the bitweaver Liberty system. This revision will enable comments and categorization for Maps and Markers.

Yoiu can get the latest version by getting modeule _bit_map from bitweaver CVS.

Next steps


Part of the retooling of the core functionality of the package is to also integrate these changes so that editing tools, which are already developed, will work with the new Gmap and Marker class model.

Following this intergration the next major step is to rebuild all AJAX functions using the Prototype javascript library. The current AJAX aspects of the GmapPackage are custom written and only working in Firefox 1.5. Use of the Prototype library will solve cross browser compatibility issues, while making it easier for other developers to understand what is going on in this package. The Prototype library is being used in other bitweaver packages as well.

When the core object classes are complete, and the AJAX functions have been rebuilt then development will move toward refining the editing tools, and expanding them for managing sets of map object, maptypes, icons, polygons, and object styles. This should move quickly as models for this functionality are already represented by editing tools for markers and polylines.

Framework

The GmapPackage uses a sets model for associating markers, markericons, maptypes, polylines, polygons, and their styles with maps.

Through the use of various keychains, each object may be associated with many maps, many sets of obejcts, and many styles. Each map has a key chain which associates it with sets of markers, maptypes, polylines, and polygons. Marker Sets, Polyline Sets, and Polygon Sets in turn each have individual objects as well as styles with which they are associated. The reason for this is multifold.

One advantage of this sets model is it makes it easier to share individual markers, polyline, and polygons with various maps and sets of each object. For example a marker can be in any number of sets, and those sets can be on any number of maps. This makes it much easier to share content across multiple maps. This could be especially value where say you might want to mash up particular information like restaurants, or art events with something universal like subway stops. Once you create a set of subway stops, then you could reuse that on multple maps mixing it with other data.

The other advantage is that styles can be divorced from content. This is both valuable for customizing the look and feel of the same map data on a map by map basis, as well as optimizing the database and lightening page weight. Each set contains a reference to a style. If a new look and feel is desired for a set of markers, that set only need be duplicated and a new style assigned. However none of the actual marker or polyline or polygon data is duplicated, only the reference to that data. This thus reduces redundancy while following in the W3C ideal of seperating data from style.

This use of sets also makes for lighter db queries and page weight. For each style used that style is only delivered to the client once, each object in a set then references that one style. This is faster and more efficient than packaging style information with each object...especially as one starts to use tens to hundreds of like styled objects on one map.

Goal

The goal of this project is to create a package that lets you edit a Google Map like a wiki, with some Flickr integration thrown in for spice.

A proof of concept is working at this link...although if you find its not working, I am probably actively testing code changes. If so, you can find me on the bitweaver channel. But I will try to keep it working between changes. -Will

This will take the best features of sites like WikyBlog-Maps, VirtualGoogleEarth, and GeoBloggers and merge them in to a package for hosting your own wikimap rather than having to use the existing services which are limited to their hosting, their feature implementation, and their look and feel.

A Road Map for the package is well underway. You can find it below. The engine makes extensive use of AJAX.

If you want to join in I'm not a professional programmer, but have faith, this is going to be sweet. If you do want to help out, well I guess you can email me wjames5 -at - nyc.rr.com or find me on irc #bitweaver.

Code

You can get the latest stage of development by checking out _bit_map from CVS HEAD branch.

Google Map Hacks to Include


References


Some Other Useful Stuff

Bitweaver Stuff

Programming Stuff






How to set up your own custom package

This is stuff I have learned about creating packages for bitweaver while creating this GMap package.

Download the "Sample Package" from this site


Setting up your database tables

Database (DB) Tables are defined in "schema_inc.php"
This file goes in your admin folder. Each package has one of these.

Some conventions to follow when building these:
  • use single quotes on DB table scheme defaults
  • underscore between each word in table names

Including tpl files in the page header

The bitweaver Kernel is set up to automatically include header information from all packages. Any information you want included in the HTML HEAD you put in a file named "header_inc.tpl" which goes in your package's _templates_ folder.

To create conditional header includes simply nest tpl files in the header_inc.php file. You can do this by using the this include code:

{CODE()}{ include file="bitpackage:yourpackagename/subheader.tpl"}
{CODE}

Creating the dropdown and side panel menus

Each package has teplate file that has its menus. You need to explicitly declair what you want in a menu in your own template file. For an example see the wiki package menu_wiki.tpl which you can find at:
wiki/templates/menu_wiki.tpl
Page History
Date/CommentUserIPVersion
25 Nov 2008 (20:19 UTC)
bug fix updates
Will69.203.72.161167
Current • Source
Will69.203.72.161166
View • Compare • Difference • Source
Will69.203.72.161165
View • Compare • Difference • Source
Will69.203.72.161164
View • Compare • Difference • Source
Will69.203.72.161163
View • Compare • Difference • Source
Will69.203.72.161162
View • Compare • Difference • Source
Will69.203.72.161161
View • Compare • Difference • Source
Will69.203.72.161160
View • Compare • Difference • Source
Will69.203.72.161159
View • Compare • Difference • Source
Will69.203.72.161158
View • Compare • Difference • Source
Will69.203.72.161157
View • Compare • Difference • Source
Will69.203.72.161156
View • Compare • Difference • Source
Will69.203.72.161155
View • Compare • Difference • Source
Will69.203.72.161154
View • Compare • Difference • Source
Will69.203.72.161153
View • Compare • Difference • Source
Will69.203.72.161152
View • Compare • Difference • Source
Will69.203.72.161151
View • Compare • Difference • Source
Will69.203.72.161150
View • Compare • Difference • Source
Will69.203.72.161149
View • Compare • Difference • Source
Will69.203.72.161148
View • Compare • Difference • Source
Will206.83.76.15147
View • Compare • Difference • Source
Will66.251.17.162146
View • Compare • Difference • Source
Will206.83.76.15145
View • Compare • Difference • Source
Will66.251.17.162144
View • Compare • Difference • Source
Will66.251.17.162143
View • Compare • Difference • Source
Will206.83.76.15142
View • Compare • Difference • Source