History of GmapPackage

{maketoc}
!R2 Alpha is Under Development
!!Summary
This package makes including and using Google Maps on your bitweaver site a snap! It makes the creation of maps, markers, lines, and other information just a matter of pointing and clicking. It also provides a service to other packages, so that if they want to include a map they can. The service feature is also wired into other bitweaver content for easy geo locating of wiki pages, blog posts, articles, etc. The Gmap Package also provides a universal map for viewing any of such geo-located bitweaver content on your site, so if you tag a page or article with a location you can search for that content by location and view it on a map.

__A Note about the R1 Version of Gmap Package:__
Google closed V1 of their API in early November 2006. At this time there is no plan to migrate the R1 version of the Gmap Package to V2 of the API. This means the R1 version of Gmap Package is currently dead and abandon.

!!Core Features:
!!!Gmap Map Builder
Creating Custom Google Maps with Custom Markers and other features
!!!Gmap Mapping Service
Lets other packages integrate Google Maps into their features without having to do any map development. One example use that is already integrated is Google Maps can be used for easily attaching geo location data to any bitweaver cms content.
!!!Gmap Content Browser
A universal map interface for searching for bitweaver cms geo located content (like pages, articles, users) and viewing it on the map.

!!State of Development of Core Features
*Gmap Map Builder
** Map Properties Editor
++ Stable with only minor bugs.
** Markers Editor
++ Stable with only minor UI bugs
** Marker Styles and Marker Icons Editors
++ Core functionality is in place but very buggy. Not usable in its current state
** Polylines Editor
++ Core functionality is in place but very buggy. Not usable in its current state
** Poligons Editor
++ Needs complete overhaul. Xmaps dependency must be removed and schema redefined for use with official Poligons API.
* Gmap Service
+ Stable. The map service is currently automatically added to all content editing pages when gmap is installed. This provides a point-and-click interface for assigning a location to your articles, wiki pages, users, etc.
* Gmap Content Browser
+ Stable with only minor bugs. Any geo-located content can be selected and filtered by category, date, and/or location and displayed on a map. A table of content is automatically generated along side the map and links will pop infowindows on the map above corresponding markers. A known bug in the search UI is that sometimes the same category is listed more than once. Additional features to still be added is the flagging of content as a user favorite and requesting favorites.

!!Special Installation Instructions
!!!Dependencies
The R2 version of the GmapPackage is dependent on the GeoPackage. All location date, lat/lng pairs, are being managed by the GeoPackage service. You must also install the GeoPackage if you want to use or test the GmapPackage.

!!!You must obtain a Google Map API Key for your site.
To use the package you need a key from Google. You can sign up for a key [http://www.google.com/apis/maps/signup.html|here] - it is quick and painless and best of all, Free. After you install the package and have your key, you can plugin your key value for your site in the Gmap admin preferences, which you can get to by going to http://yourbitweaversite/kernel/admin/.

!!!Get The Code
You can get the latest version of the package by getting module _bit_gmap from bitweaver CVS.


!!Development Roadmap
!!!Priority Goals
* Clean up Marker Styles and Icon Styles support
* Clean up Polylines support
* Debug minor layout issues
* Overhaul Polygons support

!!!Long Term Goals
* Make auto map height possible
* Add comments and stars support to markers
* Resolve bugs in current editing features.
* Support both init Markers (markers that a plotted onload) and set Markers (markers that go into a menu but do not load on the map itself)
* Test editing UI in various browsers

!!Extended Features Descriptions
Many basic Google Map features are now fully supported and editable via a AJAX UI. When R2 is complete, the best supplemental libraries to Google Maps will be integrated and editable. Gmap Package will support the GxMarker and [http://www.pixeldevelopment.com/pdmarker.asp|PdMarker]. Also 600+ free custom icon images, as originally [http://mapki.com/index.php?title=Icon_Image_Sets|listed here] are also included with the package. Additionally, Marker infoWindow text can utilizes whatever default syntax is used on your bw install, in most cases this means the infoWindow text uses tikiwiki text formatting. With all these features you can create great looking maps without writing a single line of javascript. And with its "Sets Model", the Gmap Package makes it easy to re-use map components, like marker styles, custom icons, polylines, etc, over and over on multiple maps, i.e. create once, use infinitely. More about the "Sets Model" is below.

The features of the package are supplemented by a bleeding edge AJAX editing interface. Almost all features of the map can be updated live, without a browser refresh.

!! About the AJAX Editing UI
The Gmap Package has a very robust AJAX based editing interface for live updating of map features. The editing UI and related AJAX transaction methods use the [http://mochikit.com|Mochkit] library.

!!Sets Model 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.

!!References
*[http://mapki.com/index.php?title=Knowledge_Base#Developer_Tools|Mapki Developer Tools]
*[http://www.google.com/apis/maps/documentation/|Official Google Maps API]
*[http://groups-beta.google.com/group/Google-Maps-API|Google Maps API News Group on Google Groups]
*[http://mapki.com]
*[http://www.flickr.com/services/api/|Flickr API]
*[http://www.flickr.com/services/api/key.gne|Flickr API Key Application]
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