Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Mapy Google - Współrzędne, Jak przypisać wrtość współrzędnych do "value" pola input.
slava
post 5.02.2011, 18:49:24
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 5.02.2011

Ostrzeżenie: (0%)
-----


Cześć!
Jestem nowy na forum i jak większość bardziej potrzebuję pomocy niż będę pomocny.
Aczkolwiek.... Nigdy nic nie wiadomo.

Mam problem z mapą Google. Nie wiem jak przypisać wartość współrzędnych do "value" pola input. Poniżej jest kod mapki którą mam na stronie i działa idealnie:
tutaj przykład
W momencie kiedy kliknę na jakiś punkt na mapie pojawia się dymek z adresem i współrzędnymi. Wszystko "perfekt"!
Natomiast to co mnie boli to to, jak wyciągnąć wartości współrzędnych oraz adresu klikniętego punktu poza JS w sekcji head i przypisać później do "value" pola input.
Może istnieje jakaś tablica zmiennych wygenerowanych podczas wczytywania strony lub funkcja odwołująca się do tych zmiennych. Proszę o pomoc.


  1. <script type="text/javascript">
  2. var mapa; // obiekt globalny
  3. var geokoder = new GClientGeocoder();
  4.  
  5. function mapaStart()
  6. {
  7. if(GBrowserIsCompatible())
  8. {
  9. mapa = new GMap2(document.getElementById("mapa"));
  10. mapa.setCenter(new GLatLng(52.732529,15.236930),15);
  11. mapa.setUIToDefault(); // ustawia interfejs jak w Google Maps
  12.  
  13. GEvent.addListener(mapa,'click',function(obiekt,punkt)
  14. {
  15. if(!obiekt && punkt)
  16. {
  17. geokoder.getLocations(punkt,function(odpowiedz)
  18. {
  19. if(!odpowiedz || odpowiedz.Status.code != 200)
  20. {
  21. alert('Nie udało się ustalić adresu!');
  22. }
  23. else
  24. {
  25. var adres = odpowiedz.Placemark[0].address;
  26. var wspolrzedne = new GLatLng(odpowiedz.Placemark[0].Point.coordinates[1],odpowiedz.Placemark[0].Point.coordinates[0]);
  27.  
  28. var tekst = '<h3 class="dymek">Szczegóły klikniętego punktu</h3>';
  29. tekst += '<p class="dymek">'+wspolrzedne+'</p>';
  30. tekst += '<p class="dymek"><strong>adres</strong>: '+adres+'</p>'
  31. mapa.openInfoWindowHtml(wspolrzedne,tekst);
  32. }
  33. });
  34. }
  35. });
  36. }
  37. }
  38.  
  39.  
  40. function dodajMarker(lat,lon,opcje)
  41. {
  42. // obiekt mapa jest obiektem globalnym!
  43. mapa.addOverlay(new GMarker(new GLatLng(lat,lon),opcje));
  44. }
  45. </script>
  46.  
  47. </head>
  48.  
  49. <body onload="mapaStart()" onunload="GUnload()">
  50.  
  51.  
  52. <div id="mapa" style="width: 700px; height: 300px; border: 1px solid black; background: gray;">
  53. <!-- tu będzie mapa -->
  54. </div>
  55.  
  56. <p>Zaznacz na mapie swoją pozycję a następnie wyślij</p>
  57.  
  58. <!-- ten formularz wyśle dane do pozycja.php na której wydrukuje współrzędne i adres zaznaczonego punktu -->
  59.  
  60. <form name="formularz" action="pozycja.php" method="post">
  61.  
  62. <input type="hidden" name="pozycja" value="???">
  63. <input type="hidden" name="adres" value="???">
  64. <input type="submit" value="Wyślij">
  65. </form>
  66. </body>
  67. </html>
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
Go to the top of the page
+Quote Post
thek
post 13.05.2011, 14:54:23
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




W zdarzeniu click dla mapy sobie zdefiniuj, że ma owe współrzędne do konkretnych inputów/inputa wpisywać. Oczywiście najprościej zrobić to nadając inputom określone id. Czyli nieco rozbuduj swoją funkcję dodajMarker() o coś w stylu:
[JAVASCRIPT] pobierz, plaintext
  1. document.getElementById('lat').value = lat;
  2. document.getElementById('lon').value = lon;
[JAVASCRIPT] pobierz, plaintext
oczywiście nadając owym inputom właściwe id

EDIT: Byłbym zapomniał. To działa tylko gdy dodajesz marker... Musisz jeszcze zaimplementować obsługę zmiany współrzędnych gdy marker przesuwasz. Jeśli się nie mylę - zdarzenie dragend czy jakoś tak wink.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 06:58