par
sebcaverne » 25 juil. 2014, 16:18
Je débute vraiment en php... et je commence à désespérer.
Pour un projet technique de formation professionnelle, nous devons placer des points (récupérer sur un serveur via URL) sur une map et faire remonter des informations au survol de ces points.
Nous avons réussi mais un détail nous échappe concernant l’interprétation de certains caractères.
<?php
$url = "http://www.velo-vision.com/vannes/oybike/stands.nsf/getsite?site=vannes&format=json&key=veolia";
$json = file_get_contents($url);
$json_data = json_decode($json, true);
//echo "Mon organisation est : ". $json_data["org"];
//var_dump($json_data);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Vélo à Vannes</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<script src='https://api.tiles.mapbox.com/mapbox.js/v1.6.3/mapbox.js'></script>
<link href='https://api.tiles.mapbox.com/mapbox.js/v1.6.3/mapbox.css' rel='stylesheet' />
<style>
body { margin:0; padding:0; }
#map { position:absolute; top:0; bottom:0; width:100%; }
</style>
</head>
<body>
<div id='map'></div>
<script>
var map = L.mapbox.map('map', 'vlsproject.iaoe0mh9')
.setView([47.648, -2.7583], 14);
map.scrollWheelZoom.disable();
var myLayer = L.mapbox.featureLayer().addTo(map);
var geojson = {
type: 'FeatureCollection',
features: [
<?php
foreach($json_data["stand"] as $id => $value):
//echo $value["name"]." sa disponibilite : ".$value["disp"]." sa position : logitude =".$value["lng"]." et latitude = ".$value["lat"]."<br>";
?>
{
type: 'Feature',
properties: {
title: '<?php echo "Station : ".$value["name"]; ?>',
'description': '<?php echo $value["ac"]." emplacements disponibles"."<br>".$value["ab"]." vélos disponibles"."<br>"; ?>',
'marker-color': '#501E72',
'marker-size': 'large',
'marker-symbol': 'bicycle',
url: '<?php echo $value["name"]; ?>'
},
geometry: {
type: 'Point',
coordinates: [<?php echo $value["lng"]; ?>, <?php echo $value["lat"]; ?>]
}
}, <?php endforeach; ?>]
};
myLayer.setGeoJSON(geojson);
myLayer.on('mouseover', function(e) {
e.layer.openPopup();
});
myLayer.on('mouseout', function(e) {
e.layer.closePopup();
});
</script>
</body>
</html>
<?php exit; ?>
Au survol, nous avons des + qui remplace les espaces et d'autres caractères pour les accents ... Nous souhaiterions corriger ces erreurs
Je suis vraiment novice et j'espère que qq'un pour m'accompagner dans le calme et la bonne humeur

Désolé par avance si ma pratique sur le forum n'est pas la bonne.
Sébastien
Je débute vraiment en php... et je commence à désespérer.
Pour un projet technique de formation professionnelle, nous devons placer des points (récupérer sur un serveur via URL) sur une map et faire remonter des informations au survol de ces points.
Nous avons réussi mais un détail nous échappe concernant l’interprétation de certains caractères.
[php]
<?php
$url = "http://www.velo-vision.com/vannes/oybike/stands.nsf/getsite?site=vannes&format=json&key=veolia";
$json = file_get_contents($url);
$json_data = json_decode($json, true);
//echo "Mon organisation est : ". $json_data["org"];
//var_dump($json_data);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Vélo à Vannes</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<script src='https://api.tiles.mapbox.com/mapbox.js/v1.6.3/mapbox.js'></script>
<link href='https://api.tiles.mapbox.com/mapbox.js/v1.6.3/mapbox.css' rel='stylesheet' />
<style>
body { margin:0; padding:0; }
#map { position:absolute; top:0; bottom:0; width:100%; }
</style>
</head>
<body>
<div id='map'></div>
<script>
var map = L.mapbox.map('map', 'vlsproject.iaoe0mh9')
.setView([47.648, -2.7583], 14);
map.scrollWheelZoom.disable();
var myLayer = L.mapbox.featureLayer().addTo(map);
var geojson = {
type: 'FeatureCollection',
features: [
<?php
foreach($json_data["stand"] as $id => $value):
//echo $value["name"]." sa disponibilite : ".$value["disp"]." sa position : logitude =".$value["lng"]." et latitude = ".$value["lat"]."<br>";
?>
{
type: 'Feature',
properties: {
title: '<?php echo "Station : ".$value["name"]; ?>',
'description': '<?php echo $value["ac"]." emplacements disponibles"."<br>".$value["ab"]." vélos disponibles"."<br>"; ?>',
'marker-color': '#501E72',
'marker-size': 'large',
'marker-symbol': 'bicycle',
url: '<?php echo $value["name"]; ?>'
},
geometry: {
type: 'Point',
coordinates: [<?php echo $value["lng"]; ?>, <?php echo $value["lat"]; ?>]
}
}, <?php endforeach; ?>]
};
myLayer.setGeoJSON(geojson);
myLayer.on('mouseover', function(e) {
e.layer.openPopup();
});
myLayer.on('mouseout', function(e) {
e.layer.closePopup();
});
</script>
</body>
</html>
<?php exit; ?>
[/php]
Au survol, nous avons des + qui remplace les espaces et d'autres caractères pour les accents ... Nous souhaiterions corriger ces erreurs
Je suis vraiment novice et j'espère que qq'un pour m'accompagner dans le calme et la bonne humeur :-)
Désolé par avance si ma pratique sur le forum n'est pas la bonne.
Sébastien