1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
function geoportalapi (&$matches)
{
$this->nb_map ++;
$params = $matches[1]; // paramettres
$overlays = $matches[2]; // overlays
$param_default['width'] = $this->params->get('width');
$param_default['height'] = $this->params->get('height');
$param_default['lon'] = $this->params->get('longitude');
$param_default['lat'] = $this->params->get('latitude');
$param_default['zoom'] = $this->params->get('zoom');
$overlayshtml= $this->createHTMLoverlays($overlays);
$regex_width = "#.*width=\'(.*)\'.*#s";
$regex_height = "#.*height=\'(.*)\'.*#s";
$regex_lon = "#.*lon=\'(.*)\'.*#s";
$regex_lat = "#.*lat=\'(.*)\'.*#s";
$regex_zoom = "#.*zoom=\'(.*)\'.*#s";
$param['width'] = preg_replace($regex_width, "$1", $params);
$param['height'] = preg_replace($regex_height, "$1", $params);
$param['lon'] = preg_replace($regex_lon, "$1", $params);
$param['lat'] = preg_replace($regex_lat, "$1", $params);
$param['zoom'] = preg_replace($regex_zoom, "$1", $params);
if($param['lat'] == $params) // si le paramettre n'est pas présent
$param['lat'] = $param_default['lat'];
if($param['lon'] == $params) // si le paramettre n'est pas présent
$param['lon'] = $param_default['lon'];
if($param['height'] == $params) // si le paramettre n'est pas présent
$param['height'] = $param_default['height'];
if($param['width'] == $params) // si le paramettre n'est pas présent
$param['width'] = $param_default['width'];
if($param['zoom'] == $params) // si le paramettre n'est pas présent
$param['zoom'] = $param_default['zoom'];
$key = $this->params->get('key');
$html = "<div id=\"viewerDiv$this->nb_map\" style=\"width:". $param['width'] ."px; height:". $param['height']."px; \"></div>\n";
if($this->nb_map == 1)
{
$html .= "<script type=\"text/javascript\" src=\"http://api.ign.fr/geoportail/api/js/latest/GeoportalExtended.js\">
<!-- -->
</script>";
}
//TODO : listener sur actions séparés (pour le onload)
$html .= "<script type=\"text/javascript\"><!--//--><![CDATA[//><!--
var load$this->nb_map= function() {
var VIEWER$this->nb_map = Geoportal.load(
// div's ID:
'viewerDiv$this->nb_map',
// API's keys:
['".$key."'],
{// map's center :
// longitude:
lon:".$param['lon'].",
// latitude:
lat:".$param['lat']."
},".$param['zoom']."
".$overlayshtml."
);
};
//--><!]]></script>";
return $html;
} |
Partager