backport correction de la geoloc pour les adresses precises
authorx2001corpet <x2001corpet@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sat, 1 Jul 2006 07:24:34 +0000 (07:24 +0000)
committerx2001corpet <x2001corpet@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sat, 1 Jul 2006 07:24:34 +0000 (07:24 +0000)
git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@352 839d8a87-29fc-0310-9880-83ba4fa771e5

htdocs/admin/geoloc_dynamap.php
include/geoloc.inc.php
templates/admin/geoloc_dynamap.tpl

index b479c73..88827f9 100644 (file)
@@ -35,6 +35,10 @@ if (Env::get('fix') == 'smallest_maps') {
     set_smallest_levels();
 }
 
+if (Env::get('fix') == 'precise_coordinates') {
+    $globals->xdb->execute("UPDATE adresses AS a INNER JOIN geoloc_city AS c ON(a.cityid = c.id) SET a.glat = c.lat / 100000, a.glng = c.lon / 100000");
+}
+
 if (Env::has('new_maps')) {
     require_once('geoloc.inc.php');
     if (!get_new_maps(Env::get('url')))
@@ -47,11 +51,15 @@ $missing = $countMissing->fetchOneCell();
 $countNoSmallest = $globals->xdb->query("SELECT SUM(IF(infos = 'smallest',1,0)) AS n FROM geoloc_city_in_maps GROUP BY city_id ORDER BY n");
 $noSmallest = $countNoSmallest->fetchOneCell() == 0;
 
+$countNoCoordinates = $globals->xdb->query("SELECT COUNT(*) FROM adresses WHERE cityid IS NOT NULL AND glat = 0 AND glng = 0");
+$noCoordinates = $countNoCoordinates->fetchOneCell();
+
 if (isset($refresh) && $missing) {
-       $page->assign("xorg_extra_header", "<meta http-equiv='Refresh' content='3'/>");
+    $page->assign("xorg_extra_header", "<meta http-equiv='Refresh' content='3'/>");
 }
 $page->assign("nb_cities_not_on_map", $missing);
 $page->assign("no_smallest", $noSmallest);
+$page->assign("no_coordinates", $noCoordinates);
 
 $page->run();
 
index ea247fb..a8d2c08 100644 (file)
@@ -74,7 +74,7 @@ $GLOBALS['page']->register_function('geoloc_region', '_geoloc_region_smarty');
  */
 function get_address_infos($txt) {
     global $globals;
-    $url = $globals->geoloc->webservice_url."address.php?txt=".urlencode(utf8_encode($txt)."&precise=1");
+    $url = $globals->geoloc->webservice_url."address.php?precise=1&txt=".urlencode(utf8_encode($txt));
     if (!($f = @fopen($url, 'r'))) return false;
     $keys = explode('|',fgets($f));
     $vals = explode('|',fgets($f));
index 28981bc..153d27c 100644 (file)
     Il faut <a href='?fix=smallest_maps'>définir la plus petite carte</a> pour chaque ville (à ne faire qu'une fois quand on a placé toutes les villes).
   </p>
 {/if}
-
+{if $no_coordinates}
+<h2>
+  Placement précis des adresses
+</h2>
+<p>
+  {$no_coordinates} adresses n'ont pas été bien reconnues précisément. [<a href='?fix=precise_coordinates'>Mettre les coordonnées du centre de la ville</a>]
+</p>
+{/if}
 {* vim:set et sw=2 sts=2 sws=2: *}