Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL][JavaScript] google maps
Forum PHP.pl > Forum > Przedszkole
Wolfie
Witam,


Napisałem sobie taki skrypt php który pokazuje na mapce google linie wczytana z bazy danych :

  1. <?php
  2. include_once('conf.php');
  3. ?>
  4.  
  5. <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"
  6. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  7. <html xmlns="http://www.w3.org/1999/xhtml">
  8. <head>
  9. <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
  10. <title>Polilinie wczytane z bazy MySql - google maps test</title>
  11. <script src="http://maps.google.com/maps?file=api&v=2&key=<?php echo $google_maps_key ?>&sensor=true_or_false" type="text/javascript"></script>
  12. <script type="text/javascript">
  13.  
  14. function initialize() {
  15. if (GBrowserIsCompatible()) {
  16. var map = new GMap2(document.getElementById("map_canvas"));
  17. map.setCenter(new GLatLng(<?php echo $initial_lat ?>, <?php echo $initial_lon ?>), <?php echo $initial_zoom ?>);
  18. <?php
  19. $link = mysql_connect($dbserver, $username, $password)
  20. or die("Could not connect: " . mysql_error());
  21.  
  22. mysql_select_db($dbname,$link) or die ("Can\'t use database : " . mysql_error());
  23.  
  24. $sql = "SELECT * FROM track";
  25.  
  26. $result = mysql_query($sql,$link);
  27. if (!$result)
  28. {
  29. echo "no results";
  30. }
  31.  
  32. while($row = mysql_fetch_array($result))
  33. {
  34. print_r($row);
  35.  
  36. $points = explode(",",$geometry);
  37. $numpoints = sizeof($points);
  38. echo "var polyline = new GPolyline([";
  39. for ($i = 0; $i <= ($numpoints - 1); $i++) {
  40. $coordinates = explode(" ",$points[$i]);
  41. echo "new GLatLng(" . $coordinates[1] . "," . $coordinates[0] . ")";
  42. if ($i != ($numpoints - 1)) {
  43. echo ",\n";
  44. } else {
  45. echo "\n";
  46. }
  47. }
  48. echo "],\"#ff0000\", 5, 1);\n";
  49. echo "map.addOverlay(polyline);\n\n";
  50. }
  51.  
  52. mysql_close($link);
  53. ?>
  54.  
  55. map.setUIToDefault();
  56. }
  57. }
  58.  
  59. </script>
  60. </head>
  61. <body onload="initialize()" onunload="GUnload()">
  62. <div id="map_canvas" style="width: 500px; height: 500px"></div>
  63. </body>
  64. </html>


Jak widac wczytujemy tutaj mapke google podajemy parametry itd, a nastepnie rysujemy linie na mapce za pomocą takiej mniej więcej formułki wziętej z dokumentacji google maps :

[JAVASCRIPT] pobierz, plaintext
  1. var polyline = new GPolyline([
  2. new GLatLng(37.4419, -122.1419),
  3. new GLatLng(37.4519, -122.1519),
  4. new GLatLng( 37.4619, -122.1819)
  5. ], "#FF0000", 10);
  6. map.addOverlay(polyline);
[JAVASCRIPT] pobierz, plaintext


U mnie jest to zaszyte w kodzie php i inicjowane za pomoca komendy echo.


No i teraz tak, dopóki nie miałem nic w bazie danych to mapka sie poprawnie wyświetlala, zapewne nie wchodzilo do cześci kodu gdzie jest funkcja odpowiedzialna za rysowanie linii.
Teraz gdy wrzucilem do bazy danych koordynanty, nic sie nie wyswietla , poprostu pusta strona,

W firebugu dostaje takie błędy :

Cytat


Aha, no i moze dodam jeszcze ze nawet jak nie mialem nic w bazie danych to nie wyswietlal sie napis "no results", również nie wyswietlaja mi sie dane z bazy danych, w kodzie mam linijke : print_r($row) ale nic sie nie wyswietla, dlatego nie wiem jak to zdebugowac i co moze byc nie tak,.....
thek
Linia 11 -> &sensor=true_or_false" type="text/javascript"></script>
Wywal sensor bo to tylko testowo ma niby być dla ekranów dotykowych smile.gif
Inna rzecz... Dla polilinii na IE jest wymagane obejście, gdyż ma ona problem z nimi... To jedna linijka w meta, ale sam znajdź jaka winksmiley.jpg
No i zobacz czy Ci prawidłowo generuje kod oraz polilinie jeśli chodzi o tekst.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.