Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [AJAX][JS][GoogleMaps] Google mapy, identyfikator Markera
BirdWatcher
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 14.12.2006

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


Witam!

czy ktos moglby mi pomoc, jak przypisac kazdemu utworzonemu markerowi jakis identyfikator, chodzi mi o to zeby uzytkownik mogl stworzyc tylko 3 markery na mapie, no i np, jak przesuwa jeden z tych to przesylam nowe wspolrzedne do php i uploaduje do bazy, tylko jak zidentyfikowac ktory marker zostal przesuniety, i uploadowac w bazie wlasciwy rekord?

bede bardzo wdzięczny za pomoc.

pozdrawiam:)
Go to the top of the page
+Quote Post
sticker
post
Post #2





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


można to zrobic na kilka sposobów:
- tworząc marker przypisujesz jego referencje do jakiejś zmiennej w js
- mozesz skorzystać (chyba) z wbudowanego w api z menadżera markerów ( GMarkerManager jak sie nie myle)

Jak sprawdzić czy został przesunięty? Możesz to stwierdzić na podstawie współrzędnych aktywnego markera który przesuwasz, napisz klase ktora bedzie obsługiwała aktywny marker poprzez zarejestrowanie dla markera eventu na drag i drop . W evencie sparwdzić czy pozycja jest ta sama po upuszczeniu jest rózna od orginalnej i jak nie to ajax.request do sv.
Go to the top of the page
+Quote Post
BirdWatcher
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 14.12.2006

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


a móglbys pokazac jakis przykład co do tego pierwszego, prosze?

to jak sprawdzic czy marker przesuniety to wiem, ale skad skrypt ma wiedziec ktory marker przesuniety (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

bede bardzo wdzieczny za obszerniejszą pomoc.

EDIT:

aa i jak moglby mi pomoc ten MarkerManager, bo czytalem o tym ale nic podobnego tam nie zauwazylem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

tak wyglada ten kod:

  1. FUNCTION LOAD() {
  2.  
  3.  
  4. map = new GMap2(document.getElementById("map"));
  5. map.setCenter(new GLatLng(37.4419, -122.1419), 10);
  6. map.addControl(new GLargeMapControl());
  7. map.addControl(new GOverviewMapControl());
  8. //geocoder = new GClientGeocoder();
  9.  
  10. }
  11.  
  12. FUNCTION createNewMarker(type){
  13. var uploadType = type;
  14. var marker = new GMarker(map.getCenter(), {draggable:true});
  15. map.addOverlay(marker);
  16.  
  17. GEvent.addListener(marker, "click", FUNCTION() {
  18. marker.openInfoWindowHtml("Marker type: <b>" + type + "</b>");
  19. });
  20.  
  21. GEvent.addListener(marker, "dragend", showType(type));
  22. }
  23.  
  24. FUNCTION showType(type){
  25. document.getElementById("error_block").innerHTML = "Marker Type: " + type;
  26. }



Jak widzicie, marker-dragend pokazuje w divie jego typ, no ale niestety jesli na mapie pojawia sie dwa markery createNewMarker() <- z roznymi typami tutaj, to w tym divie zawsze pokazuje tylko ten ostatni typ.

Ten post edytował BirdWatcher 6.02.2008, 00:41:59
Go to the top of the page
+Quote Post
sticker
post
Post #4





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


  1. <?php
  2. //tworzenie markera
  3. marker = new GMarker( lokalizacjaMarkera, opcjeMarkera); 
  4. //dodanie listenera na clik
  5. GEvent.addListener(marker, "click", function() {
  6. marker.openInfoWindowHtml("lalala");
  7. //dodanie markera na mapke
  8. map.addOverlay(marker);
  9. ?>


albo lepiej cały przykład z google api

  1. <?php
  2. <script type="text/javascript">
  3.  
  4. function initialize() {
  5. if (GBrowserIsCompatible()) {
  6. var map = new GMap2(document.getElementById("map_canvas"));
  7. var center = new GLatLng(37.4419, -122.1419);
  8. map.setCenter(center, 13);
  9.  
  10. var marker = new GMarker(center, {draggable: true});
  11.  
  12. GEvent.addListener(marker, "dragstart", function() {
  13. map.closeInfoWindow();
  14. });
  15.  
  16. GEvent.addListener(marker, "dragend", function() {
  17. marker.openInfoWindowHtml("Just bouncing along...");
  18. });
  19.  
  20. map.addOverlay(marker);
  21.  
  22. }
  23. }
  24. </script>
  25. ?>



spojrz na źródło
Go to the top of the page
+Quote Post
BirdWatcher
post
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 14.12.2006

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


zerknij na moja pierwsze odpowiedz, dodalem tam moj kod, ktory jest taki sam jak przedstawiłes, ale on nie rozwiazuje problemu,

EDIT:

I wlasnei po upuszczeniu markera wyskakuje mi to okienko i tutaj pokazuje wlasciwy typ, w divie typ pozostaje ten, ktory ostatni marker byl dodany

to dziwne, chyba mam jakis problem z js.. ;/
  1. FUNCTION createNewMarker(type){
  2. var uploadType = type;
  3. var marker = new GMarker(map.getCenter(), {draggable:true});
  4.  
  5.  
  6. GEvent.addListener(marker, "click", FUNCTION() {
  7. marker.openInfoWindowHtml("Marker type: <b>" + type + "</b>");
  8. });
  9.  
  10. GEvent.addListener(marker, "dragend", showType(type));
  11.  
  12. map.addOverlay(marker);
  13. }
  14.  
  15. FUNCTION showType(type){
  16. document.getElementById("error_block").innerHTML = "Marker Type: " + type;
  17. }


Kod powyżej nie dziala, tak jakby showType nie dzialala, badz type do niej przekazywany jest zly, natomiast kod ponizej jest okej, jak to mozliwe?

  1. FUNCTION createNewMarker(type){
  2. var uploadType = type;
  3. var marker = new GMarker(map.getCenter(), {draggable:true});
  4.  
  5.  
  6. GEvent.addListener(marker, "click", FUNCTION() {
  7. marker.openInfoWindowHtml("Marker type: <b>" + type + "</b>");
  8. });
  9.  
  10. GEvent.addListener(marker, "dragend", FUNCTION() {
  11. marker.openInfoWindowHtml("Marker type: <b>" + type + "</b>");
  12. });
  13.  
  14. map.addOverlay(marker);
  15. }


Ten post edytował BirdWatcher 6.02.2008, 00:56:00
Go to the top of the page
+Quote Post
sticker
post
Post #6





Grupa: Zarejestrowani
Postów: 611
Pomógł: 19
Dołączył: 28.02.2005
Skąd: Wrocław

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


przypisujesz marker do zmiennej js ktora jest widoczna tylko w funckji musisz uzyc zmiennej globalnej
Go to the top of the page
+Quote Post
BirdWatcher
post
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 14.12.2006

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


OK, wielkie dzięki, poki co wszystko działa tak jak powinno (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Ten post edytował BirdWatcher 7.02.2008, 10:43:12
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.12.2025 - 02:36