Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Google maps V2 -> V3 zmiany
roghatt
post
Post #1





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.03.2006

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


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.

Ten post edytował roghatt 5.12.2013, 09:36:34
Go to the top of the page
+Quote Post
timon27
post
Post #2





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

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


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.

Ten post edytował timon27 5.12.2013, 16:11:43
Go to the top of the page
+Quote Post
fate
post
Post #3





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


ReferenceError: GOverlay is not defined
[Wstrzymuj na tym błędzie]

ZaznaczObszar.prototype = new GOverlay();

/_display/ (wiersz 235)


--------------------
Go to the top of the page
+Quote Post
roghatt
post
Post #4





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.03.2006

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


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.

Ten post edytował roghatt 31.12.2013, 10:12:28
Go to the top of the page
+Quote Post
sowiq
post
Post #5





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Zamiast:
[JAVASCRIPT] pobierz, plaintext
  1. map.addOverlay( overlay );
[JAVASCRIPT] pobierz, plaintext


Teraz jest:
[JAVASCRIPT] pobierz, plaintext
  1. overlay.setMap( map );
[JAVASCRIPT] pobierz, plaintext
Go to the top of the page
+Quote Post
roghatt
post
Post #6





Grupa: Zarejestrowani
Postów: 250
Pomógł: 11
Dołączył: 20.03.2006

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


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...
Go to the top of the page
+Quote Post
sowiq
post
Post #7





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


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
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 Aktualny czas: 21.08.2025 - 10:03