diff -r ef903fff826d -r 7b9553a9db65 web/data/cubicweb.gmap.js --- a/web/data/cubicweb.gmap.js Thu Jun 03 10:17:44 2010 +0200 +++ b/web/data/cubicweb.gmap.js Thu Jun 03 14:51:42 2010 +0200 @@ -1,72 +1,72 @@ -/* +/** * :organization: Logilab - * :copyright: 2003-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved. + * :copyright: 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved. * :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr - * - * */ Widgets.GMapWidget = defclass('GMapWidget', null, { - __init__: function(wdgnode) { - // Assume we have imported google maps JS - if (GBrowserIsCompatible()) { - var uselabelstr = wdgnode.getAttribute('cubicweb:uselabel'); - var uselabel = true; - if (uselabelstr){ - if (uselabelstr == 'True'){ - uselabel = true; - } - else{ - uselabel = false; - } - } - var map = new GMap2(wdgnode); - map.addControl(new GSmallMapControl()); - var jsonurl = wdgnode.getAttribute('cubicweb:loadurl'); - var self = this; // bind this to a local variable - jQuery.getJSON(jsonurl, function(geodata) { - if (geodata.center) { - var zoomLevel = geodata.zoomlevel; - map.setCenter(new GLatLng(geodata.center.latitude, geodata.center.longitude), - zoomLevel); - } - for (var i=0; i' + i + '':'', - labelOffset: new GSize(2, -32) + createMarker: function(map, marker, i, uselabel) { + var point = new GLatLng(marker.latitude, marker.longitude); + var icon = new GIcon(); + icon.image = marker.icon[0]; + icon.iconSize = new GSize(marker.icon[1][0], marker.icon[1][1]); + icon.iconAnchor = new GPoint(marker.icon[2][0], marker.icon[2][1]); + if (marker.icon[3]) { + icon.shadow4 = marker.icon[3]; + } + if (typeof LabeledMarker == "undefined") { + var gmarker = new GMarker(point, { + icon: icon, + title: marker.title + }); + } else { + var gmarker = new LabeledMarker(point, { + icon: icon, + title: marker.title, + labelText: uselabel ? '' + i + '': '', + labelOffset: new GSize(2, - 32) + }); + } + map.addOverlay(gmarker); + GEvent.addListener(gmarker, 'click', function() { + jQuery.post(marker.bubbleUrl, function(data) { + map.openInfoWindowHtml(point, data); + }); }); } - map.addOverlay(gmarker); - GEvent.addListener(gmarker, 'click', function() { - jQuery.post(marker.bubbleUrl, function(data) { - map.openInfoWindowHtml(point, data); - }); - }); - } }); +