Ciao a tutti,
avrei necessità di utilizzare le api di Google Maps (v.3) per localizzare (latitudine, longitudine, indirizzo) l'utente che accede da dispositivo mobile.
Per raggirare problemi di compatibilità dei browser, in particolare dei dispositivi mobili, mi sarebbe utile interagire con le API da codice PHP e non da JavaScript come vedo fare in tonnellate di guide.
Il caso più vicino a quello che ho in testa è il seguente, dove si determina una classe con le sue funzioni e poi si richiama, ma anche in questo caso vedo che alla fine va a stampare codice JS ed il problema di compatibilità dei browser temo torni alle origini
http://phpgooglemap.wordpress.com/ca...funzioni-base/
Codice PHP:
<?php
class PhpGoogleMap {
private $apikey;
function __construct($_apikey){
$this->apikey = $_apikey;
}
function renderJS(){
echo "
<script src=\"http://maps.google.com/maps?file=api&v=2&key=". $this->apikey ."&sensor=false\" type=\"text/javascript\">
</script>
";
echo "
<script type=\"text/javascript\">
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById(\"map_canvas\"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
map.setUIToDefault();
}
}
</script>
";
}
function renderHTML(){
echo "<div id=\"map_canvas\" style=\"width: 500px; height: 300px\"></div>";
}
}
?>
Codice PHP:
<?php
include("PhpGoogleMap.php");
$map = new PhpGoogleMap("ABQIAAAAaCXVeDXfpm7YlAwseZnnIRT2yXp_ZAY8_ufC3CFXhHIE1NvwkxRftdtfVBwCVswj14F5-5imlhaaQg");
?>
<!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<?php $map->renderJS(); ?>
</head>
<body onload="initialize()" onunload="Gunload()">
<?php $map->renderHTML(); ?>
</body>
</html>
Esiste qualche funzione o sistema che permetta a PHP di interagire direttamente con le API di Google Maps o sono richiamabili esclusivamente da JS e quindi bisogna affidarsi a soluzioni di questo tipo?
Grazie mille!
Marco