##
## 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
##
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
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 ]
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 ]
/core.js
/json2.js
!/jquery.autocomplete.js
+
+# Google Maps auxiliary scripts
+/*_packed.js
***************************************************************************/
// 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)
{
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] = '<a href="profile/' + hrpids[j] + '">' + names[j] + '</a>';
+ }
+ var link = link_array.join('<br />');
+ } else {
+ var link = '<a href="profile/' + dots[i].hrpid + '">' + dots[i].name + '</a>';
+ }
+
+ var marker = new MarkerWithLabel({
+ 'position': latLng,
+ 'labelContent': link,
+ 'labelClass': 'marker_label'
+ });
markers.push(marker);
}
var mc = new MarkerClusterer(map, markers);
{
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', '<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />');
$page->assign('latitude', 0);
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;