Changeset 54822 in spip-zone


Ignore:
Timestamp:
Nov 23, 2011, 10:09:55 PM (8 years ago)
Author:
fabrice.albert@…
Message:

Correction d'une régression importante introduite dans la précédente révision : pas d'info-bulles quand GoogleEarth? n'est pas activé sur Google Maps API V3.
Amélioration de la prise en compte du paramètre focus : il n'était pas utilisé pour l'insertion de points a la mano.

Location:
_plugins_/gmap/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/gmap/trunk/balise/geomarker.php

    r54742 r54822  
    6262                if ($params['type'])
    6363                        $type = $params['type'];
    64                 $code = gmap_ajoute_marqueur_site($params['objet'], intval($params['id_objet']), $mapId, $type);
     64                $code = gmap_ajoute_marqueur_site($params['objet'], intval($params['id_objet']), $mapId, $type, $params);
    6565        }
    6666       
     
    7474                else
    7575                        $markerId = "marker_".$latitude."_".$longitude;
    76                 $code = gmap_ajoute_marqueur_special($markerId, $latitude, $longitude, $mapId, $params['titre'], $params['texte'], $params['icon']);
     76                $code = gmap_ajoute_marqueur_special($markerId, $latitude, $longitude, $mapId, $params);
    7777        }
    7878       
     
    8585                else
    8686                        $markerId = "marker_".bin2hex(mhash(MHASH_MD5, $addr));
    87                 $code = gmap_ajoute_marqueur_adresse($markerId, $addr, $mapId, $params['titre'], $params['texte'], $params['icon']);
     87                $code = gmap_ajoute_marqueur_adresse($markerId, $addr, $mapId, $params);
    8888        }
    8989       
  • _plugins_/gmap/trunk/inc/gmap_geoloc.php

    r54742 r54822  
    11601160// Cette fonction est faite pour être appelée depuis la balise GEOMARKER pour ajouter un
    11611161// marqueur qui n'est pas normalement renvoyé par la balise GEOMAP.
    1162 function gmap_ajoute_marqueur_site($objet, $id_objet, $mapId, $type)
     1162function gmap_ajoute_marqueur_site($objet, $id_objet, $mapId, $type, $params)
    11631163{
    11641164        // Tests de validité
     
    11891189                if (isObject(map))
    11901190                {
    1191         '.$codeMarker.'
     1191        '.$codeMarker;
     1192        if ($params && $params['focus'])
     1193                $code .= '
     1194                        gmap_setViewportOnMarkers("'.$mapId.'");';
     1195        $code .= '
    11921196                }
    11931197        });
     
    12331237// Ajout d'un marqueur special, c'est-à-dire qui ne provient pas d'un objet SPIP géolocalisé
    12341238// (on passe donc en paramètre toutes les informations nécessaires)
    1235 function gmap_ajoute_marqueur_special($id, $latitude, $longitude, $mapId, $titre = null, $texte = null, $iconFile = null)
     1239function gmap_ajoute_marqueur_special($id, $latitude, $longitude, $mapId, $params = null)
    12361240{
    12371241        // Tests de validité
     
    12501254       
    12511255        // Ajouter le titre
    1252         if (strlen($titre))
    1253                 $markerParams .= ','."\n" . '                   title: "'.$titre.'"';
     1256        if ($params && strlen($params['titre']))
     1257                $markerParams .= ','."\n" . '                   title: "'.$params['titre'].'"';
    12541258       
    12551259        // Déterminer l'icone
    12561260        $precmd = '';
    1257         if ($iconFile)
    1258         {
    1259                 $file = find_in_path($iconFile.'.gmd');
     1261        if ($params && $params['icon'])
     1262        {
     1263                $file = find_in_path($params['icon'].'.gmd');
    12601264                $precmd .= gmap_ajoute_icone($iconId, $file, "map");
    12611265                $markerParams .= ','."\n" . '                   icon: "'.$iconId.'"';
     
    12631267
    12641268        // Ajouter l'info-bulle
    1265         if (strlen($titre) || strlen($texte))
     1269        if ($params && (strlen($params['titre']) || strlen($params['texte'])))
    12661270        {
    12671271                $html = '<div class="gmap-balloon">' . "\n";
    1268                 if (strlen($titre))
    1269                         $html .= '      <h1>'.$titre.'</h1>' . "\n";
    1270                 if (strlen($texte))
     1272                if (strlen($params['titre']))
     1273                        $html .= '      <h1>'.$params['titre'].'</h1>' . "\n";
     1274                if (strlen($params['texte']))
    12711275                {
    12721276                        $html .= '      <div class="contents">' . "\n";
    1273                         $html .= '              <div class="texte"><p>'.$texte.'</p></div>' . "\n";
     1277                        $html .= '              <div class="texte"><p>'.$params['texte'].'</p></div>' . "\n";
    12741278                        $html .= '      </div>' . "\n";
    1275                         $html .= '</div>' . "\n";
    1276                 }
     1279                }
     1280                $html .= '</div>' . "\n";
    12771281                $markerParams .= ','."\n" . '                   click: "showInfoWindow"';
    12781282                $markerParams .= ','."\n" . '                   html: "'.protege_html($html).'"';
     
    12931297                        map.setMarker('.$id.', {
    12941298        '.$markerParams.'
    1295                         });
     1299                        });';
     1300        if ($params && $params['focus'])
     1301                $code .= '
     1302                        gmap_setViewportOnMarkers("'.$mapId.'");';
     1303        $code .= '
    12961304                }
    12971305        });
     
    13031311
    13041312// Ajout d'un maruquer à partir d'une adresse
    1305 function gmap_ajoute_marqueur_adresse($id, $adresse, $mapId, $titre = null, $texte = null, $iconFile = null)
    1306 {
     1313function gmap_ajoute_marqueur_adresse($id, $adresse, $mapId, $params = null)
     1314{
     1315spip_log("Dans gmap_ajoute_marqueur_adresse, params=".print_r($params, true), "fabdbg");
    13071316        // Tests de validité
    13081317        if (!$id || !$adresse || !$mapId)
     
    13181327       
    13191328        // Ajouter le titre
    1320         if (strlen($titre))
    1321                 $markerParams .= ','."\n" . '                   title: "'.$titre.'"';
     1329        if ($params && strlen($params['titre']))
     1330                $markerParams .= ','."\n" . '                   title: "'.$params['titre'].'"';
    13221331       
    13231332        // Déterminer l'icone
    13241333        $precmd = '';
    1325         if ($iconFile)
    1326         {
    1327                 $file = find_in_path($iconFile.'.gmd');
     1334        if ($params && $params['icon'])
     1335        {
     1336                $file = find_in_path($params['icon'].'.gmd');
    13281337                $precmd .= gmap_ajoute_icone($iconId, $file, "map");
    13291338                $markerParams .= ','."\n" . '                   icon: "'.$iconId.'"';
     
    13311340
    13321341        // Ajouter l'info-bulle
    1333         if (strlen($titre) || strlen($texte))
     1342        if ($params && (strlen($params['titre']) || strlen($params['texte'])))
    13341343        {
    13351344                $html = '<div class="gmap-balloon">' . "\n";
    1336                 if (strlen($titre))
    1337                         $html .= '      <h1>'.$titre.'</h1>' . "\n";
    1338                 if (strlen($texte))
     1345                if (strlen($params['titre']))
     1346                        $html .= '      <h1>'.$params['titre'].'</h1>' . "\n";
     1347                if (strlen($params['texte']))
    13391348                {
    13401349                        $html .= '      <div class="contents">' . "\n";
    1341                         $html .= '              <div class="texte"><p>'.$texte.'</p></div>' . "\n";
     1350                        $html .= '              <div class="texte"><p>'.$params['texte'].'</p></div>' . "\n";
    13421351                        $html .= '      </div>' . "\n";
    1343                         $html .= '</div>' . "\n";
    1344                 }
     1352                }
     1353                $html .= '</div>' . "\n";
    13451354                $markerParams .= ','."\n" . '                   click: "showInfoWindow"';
    13461355                $markerParams .= ','."\n" . '                   html: "'.protege_html($html).'"';
     
    13601369                        map.searchGeocoder("'.$adresse.'", function(latitude, longitude)
    13611370                        {
    1362                 '.$precmd.'
    1363                                 map.setMarker('.$id.', {
    1364                                         latitude: latitude,
    1365                                         longitude: longitude
    1366                 '.$markerParams.'
    1367                                 });
     1371                                if (latitude && longitude)
     1372                                {
     1373                        '.$precmd.'
     1374                                        map.setMarker('.$id.', {
     1375                                                latitude: latitude,
     1376                                                longitude: longitude'.$markerParams.'
     1377                                        });';
     1378        if ($params['focus'])
     1379                $code .= '
     1380                                        gmap_setViewportOnMarkers("'.$mapId.'");';
     1381        $code .= '
     1382                                }
    13681383                        });
    13691384                }
  • _plugins_/gmap/trunk/mapimpl/gma3/javascript/gmap_impl_public.js

    r54783 r54822  
    12221222                var markers = null;
    12231223                var bounds = null;
    1224                 if ((this.curParams.mergeInfoWindows === true) &&
    1225                         (this.map.getMapTypeId() != GoogleEarth.MAP_TYPE_ID))
     1224                if ((this.curParams.mergeInfoWindows === true) && 
     1225                        !(MapWrapper._isEarth() && (this.map.getMapTypeId() == GoogleEarth.MAP_TYPE_ID)))
    12261226                {
    12271227                        bounds = this._getMarkerAttraction(marker);
Note: See TracChangeset for help on using the changeset viewer.