Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP][inne] Google Maps Geokodowanie
Forum PHP.pl > Forum > Przedszkole
d0m1n1k_
Witam,
chciałbym pobierać dane lat/lng z JSON'a ale nie mogę tego dobrze zakodować.

  1. $street = "Wielicka 1";
  2. $city = "Kraków";
  3. $state = "Małopolska";
  4. $postcode = "";
  5. $country = "Polska";
  6.  
  7. $query = $postcode . "%20" . $city . "%20" . $country;
  8. $res = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?address=" . $query . "&sensor=true");
  9. $res = json_decode($res, true);
  10. if ($res['status'] != 'OK'){
  11. echo $res;
  12. }
  13. echo $res['results']['geometry']['lat'] . "<br />" . $res['results']['geometry']['lng'];


Nie działa to w ogóle.
Kiedy ręcznie wpiszę adres o który proszę (http://maps.googleapis.com/maps/api/geocode/json?address=" %20Wielicka%201&20Kraków%20Polska"&amp;sensor=true") wynik wydaje się być prawidłowy.

Stąd moje pytanie: Jak mam pobrać dane wynikowe lat i lng?
Damonsson
  1. echo $res['results'][0]['geometry']['location']['lat'] . "<br />" . $res['results'][0]['geometry']['location']['lng'];
d0m1n1k_
Nadal nie mogę dojść do ładu z kodem. Gdy podaję dane jedyne co wyświetla mi mapę usytuowaną centralnie na polskę (zgodnie z wybranymi współrzędnymi 52.03, 19.27) ale ani nie pokazuje znacznika, ani też nie rysuje koła , gdy wprowadzam zmienne nie wyświetla mi nawet mapki...

  1. $street = "Wielicka 1";
  2. $city = "Kraków";
  3. $state = "Małopolska";
  4. $postcode = "33-332";
  5. $country = "Polska";
  6.  
  7. $query = $postcode . "%20" . $city . "%20" . $country;
  8. $res = "http://maps.googleapis.com/maps/api/geocode/json?address=" . $query . "&amp;sensor=true";
  9. $res = json_decode($res, true);
  10. if ($res['status'] != 'OK'){}else{
  11. $geo_lat = $res['results']['geometry']['location']['lat'];
  12. $geo_lng = $res['geometry']['location']['lng'];
  13. }
  14.  
  15. <script type=\"text/javascript\">
  16. window.onload = function() {
  17. mapaStart();
  18. }
  19. </script>
  20.  
  21.  
  22. <script type=\"text/javascript\">
  23. <!--
  24. var mapa; // obiekt globalny
  25. var dymek; // okno z informacjami
  26. var geokoder = new google.maps.Geocoder();
  27.  
  28. function mapaStart()
  29. {
  30. var wspolrzedne = new google.maps.LatLng(" . $geo_lat . ", " . $geo_lng . ");
  31. var opcjeMapy = {
  32. zoom: 6,
  33. center: wspolrzedne,
  34. mapTypeId: google.maps.MapTypeId.ROADMAP,
  35. disableDefaultUI: true
  36. };
  37. mapa = new google.maps.Map(document.getElementById(\"mapka\"), opcjeMapy);
  38. dymek = new google.maps.InfoWindow();
  39.  
  40. geokoder.geocode({address: '" . $city . ", " . $street . "'}, obslugaGeokodowania);
  41.  
  42. var srodek = mapa.getCenter();
  43. var kolo = new google.maps.Circle({
  44. map: mapa,
  45. center: srodek,
  46. radius: 100000,
  47. strokeColor: '#ff0000',
  48. strokeWeight: 3,
  49. strokeOpacity: 0.8,
  50. fillColor: '#ff0000',
  51. fillOpacity: 0.4
  52. });
  53. }
  54. </script>
  55.  
  56. ";
  57.  
  58. echo "<div id=\"mapka\" style=\"width: 900px; height: 500px; border: 1px solid black; background: gray;\"></div>";
trueblue
Sprawdź co masz w linii 11-12, a co podał Ci Damonsson.
d0m1n1k_
Cytat(trueblue @ 4.11.2014, 13:50:22 ) *
Sprawdź co masz w linii 11-12, a co podał Ci Damonsson.



Próbowałem zarówno tak jak napisałem, ale też tak jak Damonsson mi napisał.
W obu przypadkach nie działa...
trueblue
Pokaż cały kod po zmianach w linii 11-12.
d0m1n1k_
  1. //Google Maps API
  2. //Ustawienie promieniu zasięgu jest w metrach! (radius)
  3.  
  4. $street = "Wielicka 1";
  5. $city = "Kraków";
  6. $state = "Małopolska";
  7. $postcode = "33-332";
  8. $country = "Polska";
  9.  
  10. $query = $postcode . "%20" . $city . "%20" . $country;
  11. $res = "http://maps.googleapis.com/maps/api/geocode/json?address=" . $query . "&amp;sensor=true";
  12. $res = json_decode($res, true);
  13. if ($res['status'] != 'OK'){}else{
  14. $geo_lat = $res['results'][0]['geometry']['location']['lat'];
  15. $geo_lng = $res['results'][0]['geometry']['location']['lng'];
  16. }
  17.  
  18. <script type=\"text/javascript\">
  19. window.onload = function() {
  20. mapaStart();
  21. }
  22. </script>
  23.  
  24.  
  25. <script type=\"text/javascript\">
  26. <!--
  27. var mapa; // obiekt globalny
  28. var dymek; // okno z informacjami
  29. var geokoder = new google.maps.Geocoder();
  30.  
  31. function mapaStart()
  32. {
  33. var wspolrzedne = new google.maps.LatLng(52.03, 19.27);
  34. var opcjeMapy = {
  35. zoom: 6,
  36. center: wspolrzedne,
  37. mapTypeId: google.maps.MapTypeId.ROADMAP,
  38. disableDefaultUI: true
  39. };
  40. mapa = new google.maps.Map(document.getElementById(\"mapka\"), opcjeMapy);
  41. dymek = new google.maps.InfoWindow();
  42.  
  43. geokoder.geocode({address: '" . $city . ", " . $street . "'}, obslugaGeokodowania);
  44.  
  45. var srodek = mapa.getCenter();
  46. var kolo = new google.maps.Circle({
  47. map: mapa,
  48. center: srodek,
  49. radius: 100000,
  50. strokeColor: '#ff0000',
  51. strokeWeight: 3,
  52. strokeOpacity: 0.8,
  53. fillColor: '#ff0000',
  54. fillOpacity: 0.4
  55. });
  56. }
  57. </script>
  58.  
  59. <div id=\"mapka\" style=\"width: 100%; height: 450px; border: 1px solid black; background: gray;\"></div>";
  60.  
  61.  
  62. //Google Maps API
trueblue
Nie pobierasz w ogóle danych od Google, a próbujesz je dekodować. Co ciekawe w pierwszej wersji kodu tak robiłeś.

Kod
$url = "http://maps.googleapis.com/maps/api/geocode/json?address=" . $query . "&amp;sensor=true";
$res=file_get_contents($url); //tego brakuje
$res = json_decode($res, true);
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.