From: Stéphane Jacob Date: Wed, 18 May 2011 20:10:01 +0000 (+0200) Subject: Display names on markers. X-Git-Tag: xorg/1.1.2~62^2~10 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=dcc9c952b911a02efb8a3c0ab28062666f93ddab;p=platal.git Display names on markers. Signed-off-by: Stéphane Jacob --- diff --git a/Makefile b/Makefile index 7f8b363..4cc834f 100644 --- a/Makefile +++ b/Makefile @@ -243,9 +243,14 @@ $(JSTREE_PATH): ## ## Maps auxiliary scripts ## -maps: +maps: htdocs/javascript/markerclusterer_packed.js htdocs/javascript/markerwithlabel_packed.js + +htdocs/javascript/markerclusterer_packed.js: wget http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer_packed.js -O htdocs/javascript/markerclusterer_packed.js +htdocs/javascript/markerwithlabel_packed.js: + wget http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.1.4/src/markerwithlabel_packed.js -O htdocs/javascript/markerwithlabel_packed.js + ## ## lists rpc ## diff --git a/htdocs/css/default.css b/htdocs/css/default.css index bdf3fb8..4ed87df 100644 --- a/htdocs/css/default.css +++ b/htdocs/css/default.css @@ -398,6 +398,15 @@ div.long td.rt { width: 82%; } padding: 0 6px 0 0; } +.marker_label { + border: 1px solid black; + background-color: white; + white-space: nowrap; +} + +.marker_label a { + color: black; +} /******************************************************************************* 7 fiche.php & fiche_referent.php diff --git a/htdocs/css/keynote.css b/htdocs/css/keynote.css index 73894fd..f0dd75a 100644 --- a/htdocs/css/keynote.css +++ b/htdocs/css/keynote.css @@ -451,6 +451,16 @@ div.long td.rt { width: 85%; } padding: 0 6px 0 0; } +.marker_label { + border: 1px solid black; + background-color: white; + white-space: nowrap; +} + +.marker_label a { + color: black; +} + /******************************************************************************* 7 fiche.php & fiche_referent.php [ cas de la fiche ] diff --git a/htdocs/css/openweb.css b/htdocs/css/openweb.css index 0682da6..a2d59d1 100644 --- a/htdocs/css/openweb.css +++ b/htdocs/css/openweb.css @@ -385,6 +385,16 @@ div.long td.rt { width: 65%; } padding: 0 6px 0 0; } +.marker_label { + border: 1px solid black; + background-color: white; + white-space: nowrap; +} + +.marker_label a { + color: black; +} + /******************************************************************************* 7 fiche.php & fiche_referent.php [ cas de la fiche ] diff --git a/htdocs/javascript/.gitignore b/htdocs/javascript/.gitignore index 47ad449..e018ffa 100644 --- a/htdocs/javascript/.gitignore +++ b/htdocs/javascript/.gitignore @@ -6,3 +6,6 @@ /core.js /json2.js !/jquery.autocomplete.js + +# Google Maps auxiliary scripts +/*_packed.js diff --git a/htdocs/javascript/maps.js b/htdocs/javascript/maps.js index 895679c..af9b2f8 100644 --- a/htdocs/javascript/maps.js +++ b/htdocs/javascript/maps.js @@ -19,6 +19,7 @@ ***************************************************************************/ // http://code.google.com/apis/maps/documentation/javascript/ +// http://code.google.com/p/google-maps-utility-library-v3/wiki/Libraries function map_initialize(latitude, longitude) { @@ -38,7 +39,25 @@ function map_initialize(latitude, longitude) for (var i = 0; i < count; ++i) { var latLng = new google.maps.LatLng(dots[i].latitude, dots[i].longitude); - var marker = new google.maps.Marker({'position': latLng}); + + if (dots[i].hrpid.search(',') > -1) { + var hrpids = dots[i].hrpid.split(','); + var names = dots[i].name.split(','); + var link_array = new Array(); + + for (var j = 0; j < hrpids.length; ++j) { + link_array[j] = '' + names[j] + ''; + } + var link = link_array.join('
'); + } else { + var link = '' + dots[i].name + ''; + } + + var marker = new MarkerWithLabel({ + 'position': latLng, + 'labelContent': link, + 'labelClass': 'marker_label' + }); markers.push(marker); } var mc = new MarkerClusterer(map, markers); diff --git a/modules/geoloc.php b/modules/geoloc.php index 5b44c23..62bb42e 100644 --- a/modules/geoloc.php +++ b/modules/geoloc.php @@ -33,11 +33,11 @@ class GeolocModule extends PLModule { global $globals; $page->changeTpl('geoloc/index.tpl'); - $page->addJsLink('maps.js'); - $page->addJsLink('markerclusterer_packed.js'); - $map_url = $globals->maps->dynamic_map . '?&sensor=false&v=' . $globals->maps->api_version . '&language=' . $globals->maps->language; $page->addJsLink($map_url, false); + $page->addJsLink('maps.js'); + $page->addJsLink('markerclusterer_packed.js'); + $page->addJsLink('markerwithlabel_packed.js'); $page->assign('pl_extra_header', ''); $page->assign('latitude', 0); @@ -46,9 +46,13 @@ class GeolocModule extends PLModule function handler_map_ajax($page) { - $data = XDB::rawFetchAllAssoc('SELECT latitude, longitude - FROM profile_addresses - WHERE type = \'home\' AND latitude IS NOT NULL AND longitude IS NOT NULL'); + $data = XDB::rawFetchAllAssoc('SELECT pa.latitude, pa.longitude, GROUP_CONCAT(DISTINCT p.hrpid SEPARATOR \',\') AS hrpid, + GROUP_CONCAT(DISTINCT CONCAT(pd.private_name, \' (\', pd.promo, \')\') SEPARATOR \',\') AS name + FROM profile_addresses AS pa + INNER JOIN profiles AS p ON (pa.pid = p.pid) + INNER JOIN profile_display AS pd ON (pd.pid = pa.pid) + WHERE pa.type = \'home\' AND pa.latitude IS NOT NULL AND pa.longitude IS NOT NULL + GROUP BY pa.latitude, pa.longitude'); $page->jsonAssign('data', $data); return PL_JSON;