2011-01-10 18 views
11

Dodaję mapę obok formularza na mojej stronie internetowej. Chodzi o to, że ludzie mogą się zarejestrować, a kiedy wpisują swój adres i kliknięcie, to miejsce - oznacza ich dom, muszą to zrobić przed przesłaniem formularza (geolokalizacja ma dużą rolę w mojej witrynie).Google Maps API - Zachowanie dziwnej mapy "Przesunięcie"

Niestety, dodałem mapę, ale w oknie mapy sama mapa wydaje się być przesunięta. Zobacz obraz poniżej, aby zilustrować, co mam na myśli:

alt text

mogę tylko przeciągnąć mapę z poziomu „zmapowane” części okna. Jeśli wybiorę szary obszar, aby przeciągnąć mapę, nie uda się.

Jakieś pomysły, które mogą być przyczyną?

EDIT:

Oto moja mapa-inicjalizacji Javascript, zwany na stronie obciążenia.

geocoder = new google.maps.Geocoder(); 
    var latlng = new google.maps.LatLng(52.428385,-3.560257); 
    var myOptions = { 
     zoom: 7, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    map = new google.maps.Map(document.getElementById("adminMap"), myOptions); 

Oto moja mapa CSS

#adminMap{ 
    float:left; 
    width:270px; 
    height:370px; 
    margin-left:20px; 
} 

Oto moja mapa HTML

<div id="adminMap"> 
</div> 

Odpowiedz

21

Widziałem rzeczy podobny do tego. Bez dostępu do jakiegokolwiek kodu, moim najlepszym rozwiązaniem jest zainicjowanie mapy w momencie, gdy kontener div jest ukryty. Widziałem, że powodują takie objawy. Spróbuj skonfigurować mapę tak, jak ją wyświetlasz, a nie wcześniej.

+0

Fair play, uderzysz w GÓRĘ PRAWEM w głowę tym! Zmieniłem inicjator z obciążenia na ciało na działanie aktywacji div. Pozdrawiam mate –

+0

To rozwiązało problem także dla mnie, kudo David! – DarrylGodden

+0

Po prostu wpadłem na dokładnie ten sam problem, naprawiony twoją odpowiedzią - dzięki! –

0

Aby ponownie renderować mapę, zmieniając widoczność div, możesz użyć tego kodu.

google.maps.event.trigger (mapa, "zmiana rozmiaru");

Spowoduje to ponowne wyświetlenie mapy wewnątrz elementu div i wyświetlenie jej w całości.