Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] Jeden marker w google maps ?
Forum PHP.pl > Forum > Przedszkole
kkuubbaa88
witam

staram sie podpiac mape google pod moja strone i wszystko ladnie dziala poza opcja jednego markera na mapie. Chcialbym, aby na mapie google byl tylko jeden marker bez wzgledu na ilosc klikniec. Jezeli ktos kliknie na mape poza markerem to po prostu wczesniejszy marker zmienia swoja pozycje. jak cos takiego zrobic ?

dodanie markera co kliknięcie to:
[JAVASCRIPT] pobierz, plaintext
  1. GEvent.addListener(mapa,'click',function(marker,punkt) {
  2. if(punkt)
  3. {
  4. var marker = new GMarker(punkt);
  5. mapa.addOverlay(marker);
  6. }
  7. });
[JAVASCRIPT] pobierz, plaintext

wczesniej sobie ustalam jakis punkt markera:
[JAVASCRIPT] pobierz, plaintext
  1. geo = new GClientGeocoder();
  2. var adres='Warszawa, Popiełuszki';
  3. geo.getLatLng(adres,function(punkt)
  4. {
  5. if (!punkt)
  6. {
  7. alert(adres + " nie został znaleziony!");
  8. }
  9. else
  10. {
  11.  
  12. mapa.setCenter(punkt, 15);
  13.  
  14. var marker = new GMarker(punkt,{draggable: true});
  15. mapa.addOverlay(marker);
  16. }
  17. });
[JAVASCRIPT] pobierz, plaintext
thek
W takim wypadku musisz zmieniać te dane w strukturze geo. Najlepiej w takim wypadku czyścić ją i w pola długości i szerokości geograficznej wpisać nowe wartości.

EDIT: zawsze też można zrobić czyszczenie całej mapy z markerów. clearOverlays() przed dodaniem nowego punktu smile.gif To będzie chyba najszybsze w tym wypadku.

kkuubbaa88
rozumie, ze w zdarzeniu 'click' trzeba dopisac kod i mam podmieniac te zmienne, tylko jak sie dobrac do tego markera, ktory juz jest zaznaczony i zmienic te wartosci ?
thek
Polecam sprawdzić strukturę tej zmiennej, gdyż jest ona dla Ciebie z tego co widzę globalna, podobnie ja map. Masz ją bardzo dobrze opisaną na stronie dokumentacji dla geocodera. Ale w takim przypadku bym się nie bawił z podmianą bo musisz dodatkowo czyścić pozostałe pola i na koniec jeszcze "odświeżyć" warstwę by nowe współrzędne zostały zauważone. Lepiej w zdarzeniu click zrobić czyszczenie całej warstwy z markerów i zaraz po tym dodanie nowego. Efekt ten sam a mniej zachodu. O ile oczywiście ma być tylko jeden marker. W przypadku większej ilości będziesz musiał implementować MarkerManagera.
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.