Add new MapPoint code for geolocation, Thingy searching and indexing and a macro for rendering thing data outside of the Thingy.

This commit is contained in:
Colin Kuskie 2011-05-02 13:49:18 -07:00
parent 944c76040a
commit 61534779d5
24 changed files with 1442 additions and 176 deletions

View file

@ -18,6 +18,7 @@ use WebGUI::International;
use WebGUI::Utility;
use HTML::Entities qw(encode_entities);
use base 'WebGUI::Asset::Wobject';
use Data::Dumper;
# To get an installer for your wobject, add the Installable AssetAspect
# See WebGUI::AssetAspect::Installable and sbin/installClass.pl for more
@ -387,7 +388,9 @@ sub view {
google.setOnLoadCallback( function() {
var mapId = "%s";
var mapUrl = "%s";
var map = new GMap2( document.getElementById("map_" + mapId) );
var element = document.getElementById("map_" + mapId);
var map = new GMap2( element );
element.mapObject = map;
map.url = mapUrl;
map.assetId = mapId;
map.setCenter(new GLatLng(%s, %s), %s);
@ -395,6 +398,10 @@ sub view {
map.extrasUrl = "%s";
var markermanager = new MarkerManager(map, {trackMarkers: true});
map.markermanager = markermanager;
map.fancyClickHandler = null;
map.panOnClick = true;
map.clickToEdit = false;
ENDHTML
@ -408,9 +415,9 @@ ENDHTML
for my $pointId ( @{$pointIds} ) {
my $point = WebGUI::Asset->newByDynamicClass( $session, $pointId );
next unless $point;
$mapHtml .= sprintf ' points.push(%s);'."\n",
JSON->new->encode($point->getMapInfo),
;
my $buffer = JSON->new->encode( $point->getMapInfo );
$mapHtml .= sprintf ' points.push(%s);'."\n", $buffer;
push @{$var->{ mapPoints }}, $point->getTemplateVars;
}
@ -432,11 +439,11 @@ ENDHTML
}
# Script to control addPoint and setPoint buttons
$mapHtml .= <<'ENDHTML';
$mapHtml .= sprintf <<'ENDHTML', $self->getUrl;
if ( document.getElementById( "setCenter_" + mapId ) ) {
var button = document.getElementById( "setCenter_" + mapId );
GEvent.addDomListener( button, "click", function () {
WebGUI.Map.setCenter( map );
WebGUI.Map.setCenter( map, '%s' );
} );
}
if ( document.getElementById( "addPoint_" + mapId ) ) {