Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Mapa google obcięta
Forum PHP.pl > Forum > PHP
wiciu010
Próbuję wstawić mapę google wg tego tutoriala http://gmapsapi.com/poradnik/100_pierwsza_....html?tag=apiv3

Jednak na stronie mapa jest wyświetlana w następujący sposób:


Czym to może być spowodowane?
Valker
Myślę, że nikt z obecnych nie jest jasno widzem i bez spojrzenia w kod strony ci nie powie gdzie zrobiłeś błąd lub co jest jego powodem ;P
Bags_Bunny
Jeśli jest to w jakimś ekstra okienku typu jQuery UI tabs, dialog, etc, to spróbuj ładować mapę po zaincjalizowaniu i wyświetleniu tamtego elementu. Miałem podobny problem niedawno, taby w dialogu. Inicjalizowałem mapę w momencie otwarcia dialogu. Wszystko było ok, jeśli mapa była na pierwszym tabie, ale jeśli na kolejnym, był właśnie ten problem. W tej chwili mapa jest inicjalizowana w momencie kliknięcia na dany tab i nie ma problemu.

PS. Jak ten temat ma się do PHP?
wiciu010
Cytat(Bags_Bunny @ 24.04.2011, 02:10:47 ) *
Jeśli jest to w jakimś ekstra okienku typu jQuery UI tabs, dialog, etc, to spróbuj ładować mapę po zaincjalizowaniu i wyświetleniu tamtego elementu. Miałem podobny problem niedawno, taby w dialogu. Inicjalizowałem mapę w momencie otwarcia dialogu. Wszystko było ok, jeśli mapa była na pierwszym tabie, ale jeśli na kolejnym, był właśnie ten problem. W tej chwili mapa jest inicjalizowana w momencie kliknięcia na dany tab i nie ma problemu.

PS. Jak ten temat ma się do PHP?


Dzięki za pomoc, właśnie o to chodziło.
thek
Gooble maps ma problem z właściwym centrowaniem gdy jest ładowana w zakładkach, Skutkuje to tym, że pozycjonuje i środkuje względem bodym a nie elementu w jakim jest osadzona mapa. Efekty sam widzisz. Aby temu zapobiec musisz mapę ładować z opóźnieniem względem całości stron. Jeśli używasz jQuery to walnij delay i po sprawie. Jeśli goł JS to timeout ustaw. Czas między 500-1000ms z reguły jest wystarczający by wszystko zadziergało.
Bags_Bunny
Mam złe przeczucie, że problem jest tak naprawdę głębszy niż tylko centrowanie. Zauważ, że również przycisk "Mapa" w prawym górnym rogu jest wyświetlony niepoprawnie.
thek
Obiekt mapy ma ustawioną z reguły wysokość i szerokość i na tej podstawie google maps wyznacza ile i jakie kawałki mapy ma ściągnąć i są to zazwyczaj oprócz widocznych dodatkowo po 1-2 więcej z każdej strony. Jeśli element z mapą jest umieszczony względem lewego górnego rogu strony tak, że wychodzi poza owe elementy niewidoczne i jest ładowany przed pełnym renderem to API się pogubi i będziesz miał efekty jakie masz. Poza tym ten bug dotyczy jedynie sytuacji gdy mapa jest wyświetlana albo w zakładkach, albo jest umieszczana na stronie poprzez ramki. Podczas renderu zachodzi bowiem sytuacja, że mapa ładuje się wcześniej niż element ma wyliczane prawidłowe położenie i stąd jest to widoczne źle. To dlatego ów odstęp czasowy jest konieczny. Wiem bo sam ten problem miałem kiedyś smile.gif
Bags_Bunny
Ja też go miałem. Mówie tylko o tym, że raczej błędne wyświetlenie przycisku nie jest spowodowane wyśrodkowaniem, więc podejrzewam, że jest coś jeszcze. Ale to czyste teoretyzowanie, bez większego w sumie znaczenia wink.gif
thek
Tu chodzi o złe wyliczenie prawidłowego położenia obiektu mapy w dokumencie. W chwili gdy są już odwołania do google o mapy, wciąż brak określena dokładnego położenia lewego górnego rogu elementu div czy innego blokowego zawierającego mapę. W efekcie układ wbija się w lewy górny róg całości dokumentu (body). W chwili gdy już się całość policzy skrypt nie poprawia danych na nowo i mapa zostaje z kawałkami policzonymi dla body, choć div wyświetlający może być gdziekolwiek na stronie i przez to źle wyświetli zassane nieodpowiednio pozycjonowane kawałki.
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.