History of GmapPackage
Version 99 | Current version | |
---|---|---|
This Package is in Early DevelopmentThis package makes including 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 helps you manage and share content across your maps. It is being designed like wiki to enable collaborative development of Google Maps. More feature details are further below.If you decide to test it out, note that updates are frequent, including database schema changes, so I wouldn't use it to build anything you want to keep at this point. Special Installation InstructionsYou 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 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 preferences.Change the HTML TagThis must be done to get polylines to render in IE. This rather sucks, but there is currently no way to change it via the package, so it must be done manually. Here is what you need to do. Copy kernel/templates/header.tpl to themes/force/header.tpl. In the new file then change the html tag to the following:
Summary of Current State of DevelopmentAll basic Google Map features are now fully supported and editable via a AJAX UI. Also, the best supplemental libraries to Google Maps have been introduced and many features are now integrated and editable. Gmap Package now supports the GxMarker and PdMarker, and the XMaps library. Also 600+ free custom icon images, as listed here are also included with the package. Additionally, the Marker infoWindow text now utilizes whatever default syntax is used on your bw install, in most cases this means the infoWindow text uses tikiwiki text formating.You can get the latest version of the package by getting module _bit_gmap from bitweaver CVS. Sometimes a proof of concept is working at this link...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. -wjames5 Some Known Bugs - if you find more add it here please
Next StepsPriority Goals
Long Term Goals
FeaturesThe Gmap Package supports all the basic Google Map features, markers, infoWindow balloons, custom icons, and polylines. It also supports the best of the hacks that supplement the Google Maps API, GxMarker, PdMarker, XMaps, and custom map types. 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 mulitple maps, i.e. create once, use infinately. 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 UIThe 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 Mochkit library. All references to Mochikit are currently contained in one file: gmap/templates/js_edit_methods.js in case Mochikit ever becomes unreliable, or is discovered to have any conflicts with native javascript.The editing interface is compatible with I.E. 6 and Firefox 1.5. and 1.0.7. The tools have been tested in Opera 8.5 but Opera is choking on a javascript process that copies data from an array into html forms. Sets Model FrameworkThe 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. Development GoalThe goal of this project is to create a package that lets you edit a Google Map like a wiki. In the distant future it would be nice to support XML importing and integration with Flickr.Th package will take the best features of sites like XMap Library 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. If you want to join in I'm not a professional programmer, but have faith, this is going to be sweet, and spiderr is giving great guidance. If you do want to help out you should probably email me at wjames5 -at - nyc.rr.com or find me on irc #bitweaver before jumping in. CodeYou can get the latest stage of development by checking out _bit_map from CVS HEAD branch.Google Map Hacks to Include
References
Just Some Development Stumbling BlocksThese are not really anything to be concerned about if testing the map, mostly just some things about bw for me to learn.
Some random stuff for cleaning up the package
| SummaryThis package makes including and using Google Maps on your bitweaver site a snap! You can create maps, markers, polylines, and other information with just a little pointing and clicking - no Google Maps API knowledge required! It also provides a service to other packages, to make it easy to add location data to other content. 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.Core Features:Gmap Map BuilderCreating Custom Google Maps with Custom Markers, Polylines, Polygons, and other featuresGmap Mapping ServiceLets 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. Admins can select which content types can be mapped. A Small Map and Permalinks to the Gmap Content Browser can also be included on content pages for easy viewing of where a content item is on a map.Gmap Content BrowserA universal map interface for searching for bitweaver geo located content (like pages, articles, users) and viewing it on the map.Install InstructionsDependenciesThe 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 GmapPackage.For strict security enforcement in Gmap package you should also install LibertySecurePackage. Gmap has options for making maps and map components private. To strictly enforce those settings in all access points, particularly lists, then you will need LibertySecure. You can run Gmap without LibertySecure, but "private" content will be displayed in lists. ConfigurationYou 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 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/. Or if you just point your browser to the gmap/ directory, while logged in as admin, you will get prompts how to do this. For non-required additional configuration tips see: GmapPackage Configuration Tips Get The CodeYou can get the latest version of the package by getting module _bit_gmap from bitweaver CVS.Development RoadmapBugs
Next Steps
Custom HistoryHistory features would be for recording changes to gmap package specific data as well as displaying liberty history data.
Final Beta Prep
Extended Features DescriptionMany basic Google Map features are now fully supported and editable via a AJAX UI. Also 600+ free custom icon images, as originally listed here are also included with the package. Additionally, Marker infoWindow text can utilizes whatever text syntaxes your site supports. 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 UIThe 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 Mochkit library.Sets Model FrameworkThe 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
|