extranet/includes/identite/infogeo.php
Sebastien BEAUGRAND 2dff8c5664 ws-2.0: identite
2010-11-26 13:59:05 +00:00

230 lines
7.0 KiB
PHP

<div id="infogeo" class="clearfix">
<div id="infogeo_txt">
<?php
$google_map = './?page=referer&part=gmap&siret='.$siret.
'&url=http://maps.google.fr/maps?f=q%26hl=fr%26geocode=%26q='.
$etab->AdresseNum.',+'.
urlencode(normaliseVoie($etab->AdresseVoie)).'+'.
urlencode(htmlspecialchars_decode($etab->AdresseRue, ENT_QUOTES)).
',+'.$etab->CP.'+'.
urlencode($etab->Ville);
if ($etab->GeoPrecis > 0) {
print '<span id="geolocalisation">';
print '<b>Information géographique :</b><br/>'.
'Latitude : '. dec2dms($etab->GeoLat).' ('.$etab->GeoLat.')<br/>'.
'Longitude : '.dec2dms($etab->GeoLon).' ('.$etab->GeoLon.')<br/>';
print '</span>';
}
?>
<a id="lien-google" href="<?=$google_map?>" target="_blank">
Afficher l&#039;adresse sur Google Map &copy;</a><br/>
<br/>
<b>Code commune / Rivoli :</b><br/>
<?php print $etab->Dept.' '.$etab->codeCommune.' / '.$etab->Rivoli; ?>
</div>
<?php
if (hasPref('mappy')) {
require_once 'mappy/mappy.php';
$photo = '';
$ville = ' '.trim(preg_replace('/([0-9]|ARRONDISSEMENT|_)/i', ' ',
$etab->Ville)).' ';
$ville = trim(strtr($ville, array(' EME ' => '', ' ER ' => '')));
if (in_array(strtoupper($ville), $tabVilleMappy)) {
$rue = trim(strtr(normaliseVoie($etab->AdresseVoie).' '.
$etab->AdresseRue,
array(' ST ' => ' SAINT ', ' STE ' => ' SAINTE ')));
$source = 'm';
} else {
$photo = 'http://cbk0.google.com/cbk?output=thumbnail&w=150&h=69&ll='.
$etab->GeoLat.','.$etab->GeoLon;
if (@fopen($photo, 'r') == false) {
$photo = '';
}
$source = 'g';
}
?>
<div id="infogeo_photo">
<?php
if ($source == 'm') {
function getToken($login, $pwd) {
$ACCESSOR_URL = 'http://axe.mappy.com/1v1/'; // Serveur de Production
$timestamp = time();
$hash = md5($login."@".$pwd."@".$timestamp);
$preToken = $login."@".$timestamp."@".$hash;
$urlGetToken = $ACCESSOR_URL . 'token/generate.aspx?auth=' .
urlencode($preToken) . '&ip=' . urlencode($_SERVER["REMOTE_ADDR"]);
$fh = @fopen($urlGetToken, 'rb') ;
if ($fh == false) {
return false;
}
$token = '';
while (!feof($fh)) {
$token .= fread($fh, 8192);
}
fclose($fh);
return $token;
}
$token = getToken('scoresdecisions', 'g1nq3iKv');
if ($token == false) {
print "Error while getting the token";
}
$src = 'http://axe.mappy.com/1v1/init/get.aspx?auth='.$token.
'&version=2.01&solution=ajax';
?>
<div>
<img id="pp-cb-thumb" width="300px" />
</div>
<script src=<?php print $src; ?> ></script>
<script type="text/javascript">
$(document).ready(function() {
var photoService = new Mappy.api.visiocity.PhotoService();
var geo = new Mappy.api.geolocation.Geocoder();
var address = "<?=$etab->AdresseNum?> <?=$rue?> <?=$ville?>";
geo.geocode(address,
function(result) {
photoService.search(result[0], "f", serviceHandler);
},
function(error) {
});
var serviceHandler = function(result) {
if (result instanceof Mappy.api.visiocity.Frontage) {
var current = result.getCurrent();
var img = $('<img src="' + current.getURL(320, null) +
'" alt="' + current.getDescription() +
'" width="300px" />');
$('#pp-cb-thumb').replaceWith(img);
}
}
}
);
</script>
<?php
} else if ($photo != '') {
?>
<div id="legende-photo">
Cliché à l&#039;approche de l&#039;adresse postale.
</div>
<div>
<img id="pp-cb-thumb" src="<?=$photo?>" width="300px" height="128px" />
</div>
<?php
switch ($_SERVER['SERVER_NAME']) {
case 'extranet.devlocal.com':
$key =
'ABQIAAAAgaXnaVXxxcgebvrN30E-VhT6B-FIN0IQI1k'.
'CChCUYV6RpBO17hTl__Sqiv_xQZFCiaRgHAoc_v9HcQ';
break;
case 'extranetrec.scores-decisions.com':
$key =
'ABQIAAAAuKBtUyFonYJBl1fqfc78tRQQcNgS-tLiAG-'.
'ic2CW9PypgC_xRhTjSL9-5iBPvj3GA1_AvZYQU_QR3Q';
break;
case 'extranet.scores-decisions.com':
$key =
'ABQIAAAAuKBtUyFonYJBl1fqfc78tRSYaqxLwFTMDT_'.
'MtTSFor1bsUZ_ChTvuzyTINkPMlW88Ar9fofaphzN3w';
break;
default:
$key = '';
break;
}
?>
<script type="text/javascript"
src="http://maps.google.com/maps?file=api&v=2&key=<?=$key?>">
</script>
<script type="text/javascript">
function showPanoData(panoData) {
if (panoData.code != 200) {
return;
}
$('#pp-cb-thumb').replaceWith(
'<div id="pp-cb-thumb"><div class="left">' +
'<img src="http://maps.google.fr/cbk?output=tile&panoid=' +
panoData.location.panoId +
'&zoom=1&x=0&y=0&cb_client=maps_sv" />' +
'</div>' +
'<div class="right">' +
'<img src="http://maps.google.fr/cbk?output=tile&panoid=' +
panoData.location.panoId +
'&zoom=1&x=1&y=0&cb_client=maps_sv" />' +
'</div></div>');
$('#legende-photo' ).css('display','block');
$('#pp-cb-thumb' ).css('display','block');
}
function doShowPanoData(ll) {
var panoClient = new GStreetviewClient();
panoClient.getNearestPanorama(ll, showPanoData);
}
function geoCodeCB(reponse) {
if (reponse &&
reponse.Status.code == 200 &&
reponse.Placemark.length == 1 &&
reponse.Placemark[0].AddressDetails.Accuracy > 5) {
var lat = reponse.Placemark[0].Point.coordinates[1];
var lon = reponse.Placemark[0].Point.coordinates[0];
var ll = new GLatLng(lat, lon);
$("#geolocalisation").
replaceWith("<b>Information géographique :</b><br/>" +
"Latitude : " + lat + "<br/>" +
"Longitude : " + lon + "<br/>");
$("#lien-google").
replaceWith(
"<a href=http://maps.google.fr/maps?q=" +
<?php
print '"'.urlencode($etab->AdresseNum.' '.
$etab->AdresseRue.' '.
$etab->CP.' '.
$etab->Ville).'"';
?> +
" target=_blank>" +
"Afficher l'adresse sur Google Map &copy;</a>"
);
doShowPanoData(ll);
}
}
function affichePhoto() {
<?php
if ($etab->GeoPrecis < 7) {
print 'var geoCoder = new GClientGeocoder;';
print 'geoCoder.getLocations("'.
$etab->AdresseNum.' '.
$etab->AdresseRue.' '.
$etab->CP.' '.
$etab->Ville.'", geoCodeCB);';
} else {
print 'var ll = new GLatLng('.$etab->GeoLat.', '.$etab->GeoLon.');';
print 'doShowPanoData(ll);';
}
?>
}
$(document).ready(function() {
if ($('#pp-cb-thumb').length) {
affichePhoto();
}
}
);
</script>
<?php
}
?>
</div>
<?php
}
?>
</div>