Only displays names on map on demand.
authorStéphane Jacob <sj@m4x.org>
Sun, 12 Jun 2011 12:47:52 +0000 (14:47 +0200)
committerStéphane Jacob <sj@m4x.org>
Sun, 12 Jun 2011 12:47:52 +0000 (14:47 +0200)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
Makefile
htdocs/javascript/.gitignore
htdocs/javascript/maps.js
modules/geoloc.php

index 90b2ec8..c2dc546 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -243,14 +243,11 @@ $(JSTREE_PATH):
 ##
 ## Maps auxiliary scripts
 ##
-maps: htdocs/javascript/markerclusterer.js htdocs/javascript/markerwithlabel.js
+maps: htdocs/javascript/markerclusterer.js
 
 htdocs/javascript/markerclusterer.js:
        wget http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/1.0/src/markerclusterer_compiled.js -O htdocs/javascript/markerclusterer.js
 
-htdocs/javascript/markerwithlabel.js:
-       wget http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.1.4/src/markerwithlabel_packed.js -O htdocs/javascript/markerwithlabel.js
-
 ##
 ## lists rpc
 ##
index c3428fc..6c46558 100644 (file)
@@ -9,4 +9,3 @@
 
 # Google Maps auxiliary scripts
 /markerclusterer.js
-/markerwithlabel.js
index a2f1864..97235c2 100644 (file)
 
 function map_initialize()
 {
-    var latlng = new google.maps.LatLng(0, 0);
     var myOptions = {
         zoom: 1,
-        center: latlng,
+        center: new google.maps.LatLng(0, 0),
         mapTypeId: google.maps.MapTypeId.ROADMAP
     };
     var map = new google.maps.Map($('#map_canvas').get(0), myOptions);
@@ -35,6 +34,8 @@ function map_initialize()
         var data = jQuery.parseJSON(json_data);
         var dots = data.data;
         var count = dots.length;
+        var info_window = new google.maps.InfoWindow({});
+        var parameters = ", '_blank', 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=840,height=600'";
         var markers = [];
 
         for (var i = 0; i < count; ++i) {
@@ -47,20 +48,25 @@ function map_initialize()
                 var link_array = new Array();
 
                 for (var j = 0; j < hrpids.length; ++j) {
-                    link_array[j] = '<a href="profile/' + hrpids[j] + '">' + names[j] + '</a>';
+                    link_array[j] = '<a href="profile/' + hrpids[j] + '" onclick="window.open(this.href' + parameters + '); return false;">' + names[j] + '</a>';
                 }
                 var link = link_array.join('<br />');
             } else {
-                var link = '<a href="profile/' + dots[i].hrpid + '">' + dots[i].name + '</a>';
+                var link = '<a href="profile/' + dots[i].hrpid + '" onclick="window.open(this.href' + parameters + '); return false;">' + dots[i].name + '</a>';
             }
 
-            var marker = new MarkerWithLabel({
+            var marker = new google.maps.Marker({
                 'position': latLng,
-                'labelContent': link,
-                'labelClass': 'marker_label'
+                'map': map,
+                'title': dots[i].name
             });
             marker.bindTo('icon', new ColoredIcon(color));
             marker.set('color', color);
+            marker.set('html', link);
+            google.maps.event.addListener(marker, 'click', function() {
+                info_window.setContent(this.html);
+                info_window.open(map, this);
+            });
             markers.push(marker);
         }
         var mc = new MarkerClusterer(map, markers);
index 4db76cd..5e58052 100644 (file)
@@ -51,7 +51,8 @@ class GeolocModule extends PLModule
 
         $data = XDB::rawFetchAllAssoc('SELECT  pa.latitude, pa.longitude, GROUP_CONCAT(DISTINCT p.hrpid SEPARATOR \',\') AS hrpid,
                                                GROUP_CONCAT(pd.promo SEPARATOR \',\') AS promo,
-                                               GROUP_CONCAT(DISTINCT CONCAT(pd.private_name, \' (\', pd.promo, \')\') SEPARATOR \',\') AS name
+                                               GROUP_CONCAT(DISTINCT pd.private_name, \' (\', pd.promo, \')\' SEPARATOR \', \') AS name,
+                                               GROUP_CONCAT(DISTINCT pa.pid SEPARATOR \',\') AS pid
                                          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)