Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Google maps V2 -> V3 zmiany
Forum PHP.pl > Forum > Przedszkole
roghatt
Witam
Jakiś czas temu robiłem mapkę, na której wyświetlają się znaczniki. Można też dodawać nowe i zaznaczać obszar i dane znaczników znajdujących się w obszarze wyświetlają się pod mapką.
Próbowałem przerobić to na V3, ale coś nie idzie. Dalej wyświetla się szara mapka. Nie za bardzo wiem co może byś jeszcze nie tak. Samo zrobienie tego obecnego sprawiło mi wiele trudności ale się udało

http://jsfiddle.net/gyuC5/1/
Wstawiłem kod do jsfiddle bo tutaj pisze, że za długi.
timon27
a skąd się bierze glatLng1?
kojarzą tylko klasę glatLng, która w v3 zamienia się w google.maps.LatLng

Generalnie kod jest duży i może być mnóstwo błędów.
Standardowo - potnij kod aż zostanie ci kilka linijek i będzie działać i dodawaj kolejne kawałki aż się wykrzaczy i będziesz mógł łatwiej znaleźć błędy.
fate
ReferenceError: GOverlay is not defined
[Wstrzymuj na tym błędzie]

ZaznaczObszar.prototype = new GOverlay();

/_display/ (wiersz 235)
roghatt
http://jsfiddle.net/gyuC5/2/

Zostaje mi błąd:
TypeError: mapa.addOverlay is not a function
Co w v3 jest używane zamiast tego bo nigdzie nie mogę znaleźć?
Chociaż pod linkiem powyżej inne błędy pokazuje ale ich nie ma u mnie na serwerze jak w całości wszystko jest wrzucone.
sowiq
Zamiast:
[JAVASCRIPT] pobierz, plaintext
  1. map.addOverlay( overlay );
[JAVASCRIPT] pobierz, plaintext


Teraz jest:
[JAVASCRIPT] pobierz, plaintext
  1. overlay.setMap( map );
[JAVASCRIPT] pobierz, plaintext
roghatt
Super, już błędu nie ma.
Jeszcze jedno. Na mapie mam zaznaczanie obszaru i wyświetlanie danych pod mapą punktów znajdujących się w obszarze.

Kod
var obszar = null;

                google.maps.event.addListener(mapa,'mousemove',function(p)
                {
                    if(!obszar || !obszar.punkt1)
                        return;
                    // ustawiamy drugi punkt zaznaczonego obszaru na współrzędne LatLng, wskazywane przez kursor myszy
                    obszar.ustawPunktKoncowy(p);
                });
                
                google.maps.event.addListener(mapa,'click',function(o,p)
                {
                    if(!p)
                        return;
                    if(!obszar)
                    {
                        // jeżeli kliknięto, a nie ma jeszcze wstawionego zaznaczenia, to je wstawiamy
                        obszar = new ZaznaczObszar(p);
                        obszar.setMap(mapa);
                    }
                    else
                    {
                        // jeżeli kliknięto, a zaznaczenie istnieje do wyświetlamy jego zakres (google.maps.LatLngBounds)
                        // GLog.write('Obszar: '+obszar.pobierz());
                              
                                var poziomPowiekszenia = mapa.getBoundsZoomLevel(obszar.pobierz());
                                mapa.setCenter(centrum, poziomPowiekszenia);
                        zaznaczMarkery(obszar.pobierz(), markeryGlobal);

                        // usuwamy zaznaczenie
                        obszar.remove();
                        obszar = null;
                    }
                });


Błąd: TypeError: obszar is null
w v2 działało.
To co wiedziałem to zmieniłem na v3, ale dalej zaznaczanie na mapie nie działa...
sowiq
Cytat(roghatt @ 31.12.2013, 10:40:00 ) *
w v2 działało.

Tja, działało... aaevil.gif

Debuguj... Wstaw w kilku miejscach console.log( obszar ) i sprawdź co się dzieje w kodzie. Przecież nikt tutaj nie robi za parser :/

A zamiast się gimnastykować proponuję użyć Drawing Library od Google https://developers.google.com/maps/document...ascript/drawing
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.