Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2598 → Rev 2605

/branches/v2.10-motoculteur/widget/modules/cartopoint/squelettes/carte_defaut.tpl.html
79,6 → 79,7
if (referentiel != null) {
filtreCommun += '&referentiel=<?=rawurlencode($referentiel)?>';
}
var bbox<?= ($bbox != null) ? " = '$bbox'" : ""; ?>;
var titreCarte = '<?= ($titre != null) ? addslashes($titre) : "null"; ?>',
urlLogo = '<?= ($logo != null) ? $logo : "null"; ?>',
urlSite = '<?= ($url_site != null) ? $url_site : "null"; ?>',
/branches/v2.10-motoculteur/widget/modules/cartopoint/squelettes/scripts/carto.js
6,10 → 6,7
* var pointImageUrl ;
* var groupeImageUrlTpl ;
*/
var DEBUG = false,// Mettre à true pour afficher les messages de débogage
pointsOrigine = null,
boundsOrigine = null,
markerClusterer = null,
var DEBUG = false,// Mettre à true pour afficher les messages de débogage
map = null,
infoBulle = new google.maps.InfoWindow(),
stations = null,
72,7 → 69,7
attribuerListenersOverlay();
centrerTitreEtStats();
initialiserAffichagePanneauLateral();
initialiserGestionnaireMarqueurs()
initialiserGestionnaireMarqueurs();
initialiserInfoBulle();
initialiserFormulaireContact();
chargerLimitesCommunales();
80,7 → 77,8
}
 
function getUrlVars() {
var vars = [], hash;
var vars = [],
hash;
if (window.location.href.indexOf('?') != -1) {
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for (var i = 0; i < hashes.length; i++) {
337,6 → 335,22
// Ajout de la couche OSM à la carte
map.mapTypes.set('OSM', osmMapType);
 
// Centrage sur bounding box si spécifiée
if (bbox != null) {
var pointsBbox = bbox.split(',');
if (pointsBbox.length == 4) {
var bounds = new google.maps.LatLngBounds(
new google.maps.LatLng(parseFloat(pointsBbox[0]), parseFloat(pointsBbox[1])), // sud-ouest
new google.maps.LatLng(parseFloat(pointsBbox[2]), parseFloat(pointsBbox[3])) // nord-est
);
// Apply fitBounds
map.fitBounds(bounds);
//console.log('bornes demandées: ' + bounds);
/*var bds = map.getBounds(); // undefined si demandé trop tôt
console.log('bornes obtenues: ' + bds);*/
}
}
 
// écouteur sur changement de fond
google.maps.event.addListener( map, 'maptypeid_changed', function() {
// licence par défaut
404,6 → 418,9
var NELatLng = (map.getBounds().getNorthEast().lat())+'|'+(lngNE),
SWLatLng = (map.getBounds().getSouthWest().lat())+'|'+(lngSW);
chargerMarqueurs(zoom, NELatLng, SWLatLng);
// Répercussion de la bounding box dans l'URL afin de pouvoir copier-coller et se retrouver au même endroit
var bboxParam = '' + map.getBounds().getSouthWest().lat() + ',' + lngSW + ',' + map.getBounds().getSouthWest().lat() + ',' + lngNE;
mettreAJourUrlAvecBbox(bboxParam);
} else {
programmerRafraichissementCarte();
}
410,6 → 427,33
}, 400);
}
 
// ajoute ou met à jour le paramètre "bbox" de l'url dans la barre du navigateur
function mettreAJourUrlAvecBbox(bboxParam) {
var urlCourante = window.location.href,
urlAJour;
//alert('url courante: ' + urlCourante);
if (urlCourante.indexOf('bbox=') == -1) {
if (urlVars && urlVars.length > 0) {
urlAJour = urlCourante += '&bbox=' + bboxParam;
} else {
urlAJour = urlCourante += '?bbox=' + bboxParam;
}
} else {
urlAJour = urlCourante.replace(/bbox=[\d\.,-]*/g, 'bbox=' + bboxParam);
}
//alert('url à jour: ' + urlAJour);
mettreAJourUrl(urlAJour);
}
// met à jour l'url dans la barre du navigateur
function mettreAJourUrl(nouvelleUrl) {
if (!!(window.history && window.history.pushState)) { // vérif si les méthodes existent sur le navigateur
var currentState = window.history.state;
if (currentState != nouvelleUrl) {
window.history.pushState("tabarnak", "", nouvelleUrl);
}
}
}
 
var marqueurs = new Array();
function chargerMarqueurs(zoom, NELatLng, SWLatLng) {
cacherMessageAucuneObs();
464,8 → 508,11
}
 
premierChargement = true;
// Si on charge pour la première fois et qu'on a un filtre sur les données,
// il est peu probable que les marqueurs couvrent la Terre entière... on
// ajuste donc la bbox aux données présentes - SAUF si on a spécifié une bbox !
function doitCentrerCarte() {
return premierChargement && urlVars != null && urlVars.length > 0;
return premierChargement && ! bbox && urlVars != null && urlVars.length > 0;
}
 
function rafraichirMarqueurs(data) {
486,7 → 533,7
marqueurs.push(nouveauMarqueur);
}
});
 
if (doitCentrerCarte()) {
premierChargement = false;
var bounds = new google.maps.LatLngBounds(),
/branches/v2.10-motoculteur/widget/modules/cartopoint/CartoPoint.php
46,9 → 46,15
private $logo = null; // url du logo à ajouter si nécessaire
private $url_site = null; // url du site auquel le logo est lié
private $image = null; // url d'une image à ajouter dans l'interface
private $nbjours = null; // nombre de jour à partir de la date courate pour lesquels on affiche les points
private $nbjours = null; // nombre de jours à partir de la date courante pour lesquels on affiche les points
private $annee = null; // filtre par année
private $referentiel = null; // nombre de jour à partir de la date courate pour lesquels on affiche les points
private $referentiel = null; // référentiel
/** boîte englobante (bounding box), représentée par deux paires de coordonnées : gauche-bas / droite-haut
* http://wiki.openstreetmap.org/wiki/Bounding_Box
* (chaque bibliothèque donne les 4 coins dans un ordre différent... autant choisir celui-là)
* Exemple de paramètre: 43.6650177|3.8706364,43.7410594|4.0111413 (latS, lonO, latN, lonE)
*/
private $bbox = null;
 
/**
* Méthode appelée par défaut pour charger ce widget.
96,6 → 102,7
$this->nbjours = (isset($nbjours) ? urldecode($nbjours) : null);
$this->annee = (isset($annee) ? urldecode($annee) : null);
$this->referentiel = (isset($referentiel) ? urldecode($referentiel) : null);
$this->bbox = (isset($bbox) ? urldecode($bbox) : null); // on s'emmerde pas à faire un tableau
$this->start = (isset($start) ? $start : null);
$this->limit = (isset($limit) ? $limit : null);
}
130,6 → 137,7
$widget['donnees']['nbjours'] = $this->nbjours;
$widget['donnees']['annee'] = $this->annee;
$widget['donnees']['referentiel'] = $this->referentiel;
$widget['donnees']['bbox'] = $this->bbox;
$widget['donnees']['url_limites_communales'] = $this->obtenirUrlsLimitesCommunales();
$widget['donnees']['communeImageUrl'] = $this->config['carto']['communeImageUrl'];
$widget['donnees']['pointImageUrl'] = $this->config['carto']['pointImageUrl'];