Auto Zoom et recadrage intelligent sur une carte Google Map
Les utilisateurs de l’API Google Map sont souvent confrontés à un problème lorsqu’ils ont beaucoup de marqueurs sur une carte google map et qu’ils n’arrivent pas à avoir un cadrage cohérent et un zoom approprié.
En effet, on peut remédier à ce problème grâce aux mathématiques : il suffit de prendre le point central entre les 2 points les plus éloignés et d’ajuster le zoom en fonction de la distance entre ces 2 derniers.
Le script suivant vous montre comment calculer le zoom et les coordonnées du cadrage le plus approprié à partir d’un ensemble de marqueurs. Cette fonctionnalité est disponible sur PhoogleMap.
public function enableAutoZoom ()
{
$latitude_array = array();
$latitude_array = array();
foreach ($this->validPoints as $key => $value)
{
$latitude_array[] = $value['lat'];
$longitude_array[] = $value['long'];
}
$minimal_latitude = min ($latitude_array);
$maximal_latitude = max ($latitude_array);
$minimal_longitude = min ($longitude_array);
$maximal_longitude = max ($longitude_array);
$central_latitude = $minimal_latitude + ($maximal_latitude - $minimal_latitude) / 2;
$central_longitude = $minimal_longitude + ($maximal_longitude - $minimal_longitude) / 2;
$miles = (3958.75 * acos(sin($minimal_latitude / 57.2958) * sin($maximal_latitude / 57.2958) + cos($minimal_latitude / 57.2958) * cos($maximal_latitude / 57.2958) * cos($maximal_longitude / 57.2958 - $minimal_longitude / 57.2958)));
switch ($miles)
{
case ($miles < 0.2):
$zoom = 2;
break;
case ($miles < 0.5):
$zoom = 3;
break;
case ($miles < 1):
$zoom = 3;
break;
case ($miles < 2):
$zoom = 4;
break;
case ($miles < 3):
$zoom = 5;
break;
case ($miles < 7):
$zoom = 6;
break;
case ($miles < 15):
$zoom = 8;
break;
case ($miles < 50):
$zoom = 9;
break;
case ($miles < 300):
$zoom = 12;
break;
case ($miles < 600):
$zoom = 14;
break;
default:
$zoom = 16;
break;
}
$this->centerMap($central_latitude, $central_longitude);
$this->zoomLevel = $zoom;
}
Aucun trackback pour l'instant
about 3 weeks ago - Aucun commentaire
Zend vient de diffuser une première version de développement de Zend Framework 2.0 afin de faire découvrir les quelques nouveautés de la bibliothèque PHP5.
Au programme, tout comme Symfony 2, Zend Framework 2.0 sera entièrement conçu pour PHP 5.3 avec les « namespaces ».
Toutefois rien de bien nouveau sur cette version de développement. Elle correspondant principalement aux librairies de
about 1 month ago - Aucun commentaire
Bonjour à tous,
Je vous informe que j’ai désormais arrêter le projet Phoogle Map. Les raisons sont multiples, et je me dois de vous en faire part :
- Changement majeur de l’API de Google Map V3 m’obligerait à faire une ré-écriture complète de la librairie
- Je manque considérablement de temps libre pour continuer à faire avancer
about 2 months ago - Aucun commentaire
Wordpress 3.0 vient de sortir en version finale. Il est disponible sur le site officiel international de Wordpress.org en anglais et également en version française sur le site wordpress-fr.org.
Les nouveautés sont nombreuses :
- Le compte administrateur par défaut peut être nommer autrement que « admin » et on saisit le mot de passe dès l’installation.
- Les posts
about 5 months ago - Aucun commentaire
Il est très utile dans une application Web d’avoir un système de navigation capable de cartographier les pages d’un site et d’en déduire des plan de site, fils d’arianes, menus, sitemap.xml, …
Zend_Navigation a été conçu dans cette optique, il propose un système de gestion de pages et des helpers pour générer des composants graphiques.
Nous allons
about 5 months ago - Aucun commentaire
Voici une petite extension sympa sur le navigateur Google Chrome : il s’agit d’un petit moteur de recherche sur le site PHP.net permettant d’accéder directement à la documentation officielle de PHP à partir du navigateur. Tout bête, mais très pratique !
L’extension est téléchargeable à cette adresse : https://chrome.google.com/extensions/detail/kfiahljocaflpaiopilgpiochncgdnhd
Les résultats de recherche sont identiques à ceux
about 7 months ago - Aucun commentaire
Une rumeur circule depuis quelques temps, à propos d’une ré-inventation de PHP par Facebook pour optimiser les performances de leurs applications. Cette dernière a été désormais par la firme, un ingénieur a travaillé sur une refonte de la runtime de PHP afin d’avoir un résultat compilé et non plus interprété comme c’est le cas actuellement
about 7 months ago - Aucun commentaire
Un point essentiel à ne pas négliger sur une application Web est la ré-écriture d’URL via un système de routeur. Pourquoi ré-écrire des Urls alors que l’utilisateur n’en tape jamais directement ? Et bien tout simplement, parce que l’utilisateur ne comprend pas forcement où il se trouve sur le site en regardant une Url de
about 8 months ago - 4 commentaires
A l’heure où les environnements de développement pour PHP sont majoritairement basé sur Eclipse : PHP Development Tools, Aptana et Zend Studio, Netbeans quant à lui se faisait très discret dans le domaine des IDE PHP.
Voici la nouvelle version de NetBeans en release 6.8 avec des outils de développement pour PHP 5 fort intéressants :
Tout
about 11 months ago - 2 commentaires
Nouvelle version de Phoogle Map 2.1 toujours basée sur l’API Google Map en version 2.0, cette nouvelle version offre une compatibilité avec PHP 5.3.
La sortie de cette nouvelle version s’accompagne d’une amélioration de la rubrique PhoogleMap sur le site avec des exemples téléchargeables, des sources mises à jour, une présentation approfondie, une PHP Doc
about 11 months ago - 3 commentaires
Aptana Studio est un IDE (Environnement de Développement orienté) Web 2.0 et basé sur les fondations d’Eclipse. Son principal avantage est qu’il n’utilise pas les plugin’s traditionnels d’Eclipse au profit de plugin’s développés par aptana qui sont beaucoup plus performants et plus astucieux.
Le logiciel est un environnement complet pour :
- PHP (sans passer le PDT