Estou fazendo uma aplicação com PHP e Google Maps para exibir uma polyline ligando diversos pontos, latitude e longitude, armazenados em uma base de dados MySQL. Tenho já uma experiencia boa com Javascript e Google Maps API mas sou novo em PHP. Não consegui ainda acertar um loop correto que pegue todos os pontos da tabela embora eu saiba qual a função do Google disponivel , GPolyline. Tentei este aqui agora :
<body> <div id="map" style="width: <?php echo $map_width ?>px; height: <?php echo $map_height ?>px"> </div> <script type="text/javascript"> //<![CDATA[ var map = new GMap2(document.getElementById("map")); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(<?php echo $initial_lat ?>, <?php echo $initial_lon ?>), <?php echo $initial_zoom ?>); <?php $link = mysql_connect($dbserver, $username, $password) or die("Could not connect: " . mysql_error()); mysql_select_db($dbname,$link) or die ("Can\'t use database : " . mysql_error()); $sql = "SELECT lat,lng FROM geo_points WHERE route=1"; $result = mysql_query($sql,$link); if (!$result) { echo "no results"; } else { while($row = mysql_fetch_array($result)) { $polylat = $row['lat']; $polylng = $row['lng']; $geometry = str_replace($polylat,",",$polylng); $points = explode(",",$geometry); $numpoints = sizeof($points); echo "var polyline = new GPolyline(["; for ($i = 0; $i <= ($numpoints - 1); $i++) { $coordinates = explode(",",$points[$i]); echo "new GLatLng(" . $coordinates[1] . "," . $coordinates[0] . ")"; if ($i != ($numpoints - 1)) { echo ",\n"; } else { echo "\n"; } } echo "],\"#ff0000\", 5, 1);\n"; echo "map.addOverlay(polyline);\n\n"; } }
Porém não exibe o mapa na coordenada selecionada nem a polyline traçando a rota.
No "ver código-fonte" da página , pelo navegador, este mostra esta saida :
Isto é, ele faz o loop de todos os pontos mas pega sómente uma coordenada, longitude.var polyline = new GPolyline([new GLatLng(,25.0499)
],"#ff0000", 5, 1);
map.addOverlay(polyline);
Gostaria de saber porque ele não pega a latitude. Acho que o erro está no PHP. Agradeço uma help para localizá-lo.
Djalma.