199,7 → 199,7 |
return; |
} |
try { |
$form_needs_refresh = self::callNominatim($params); |
$form_needs_refresh = self::callNominatim($params, $this->bdd); |
|
self::NULLifNotNum($params, self::$optional_bool_fields); |
|
274,7 → 274,7 |
return; |
} |
try { |
$form_needs_refresh = self::callNominatim($params); |
$form_needs_refresh = self::callNominatim($params, $this->bdd); |
|
self::NULLifNotNum($params, self::$optional_bool_fields); |
|
367,17 → 367,30 |
$id_structure))->fetchColumn() != 0); |
} |
|
static function callNominatim(&$params) { |
if ( |
(! @$params['cs_latitude'] || ! @$params['cs_longitude']) && |
(@$params['cs_adresse_01'] || @$params['cs_code_postal'] || @$params['cs_ville']) ) { |
$lonlat = array(); |
if(Coel::coordGuess(Coel::addrReStruct($params), $lonlat)) { |
$params['cs_latitude'] = $lonlat['lat']; |
$params['cs_longitude'] = $lonlat['lon']; |
return TRUE; |
} |
} |
static function callNominatim(&$params, $db = NULL) { |
// lon/lat déjà saisies ? |
if (@$params['cs_latitude'] && @$params['cs_longitude']) return FALSE; |
|
// ni adresse, ni CP, ni ville ? rien n'est possible |
if (!@$params['cs_adresse_01'] && !@$params['cs_code_postal'] && !@$params['cs_ville']) return FALSE; |
|
$lonlat = array(); |
if(Coel::coordGuess(Coel::addrReStruct($params, $db), $lonlat)) { |
$params['cs_latitude'] = $lonlat['lat']; |
$params['cs_longitude'] = $lonlat['lon']; |
return TRUE; |
} |
|
// second guess, sans code postal |
if(@$params['cs_code_postal']) { |
$params2 = $params; |
unset($params2['cs_code_postal']); |
if(Coel::coordGuess(Coel::addrReStruct($params2, $db), $lonlat)) { |
$params['cs_latitude'] = $lonlat['lat']; |
$params['cs_longitude'] = $lonlat['lon']; |
return TRUE; |
} |
} |
return FALSE; |
} |
|