Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

second call of google maps does not show the map in correct size

using gwt-maps-3.8.0 i display a route in a gwt popup. Works when called once but does not work on second call.

What should i do ... some advice to refresh the mapWidget? defect map

like image 636
Malte Avatar asked Dec 09 '25 21:12

Malte


2 Answers

When you display the map, trigger its resize event.

From the documentation:

Developers should trigger this event on the map when the div changes size: google.maps.event.trigger(map, 'resize')

It appears the way to do this in GWT is

Event.trigger(mapWidget.getMap(), "resize");

At the moment, the map has zero size as far as the API is concerned, so it's just displaying the buffer of tiles around the single pixel at (0,0). Triggering the resize event causes the API to get the correct size from the browser so the right tiles are fetched for display.

like image 151
Andrew Leach Avatar answered Dec 13 '25 12:12

Andrew Leach


I had the same issue (map shown in a popup; reload the popup and the map was no longer centered).
In the end I managed to fix my problem using the triggerResize method from the GoogleMap class. However it worked only after I triggered this method from an Idle event.
triggerResize will notify the map to show the correct tiles.
setCenter will make sure the map is centered once again.

gMap.addIdleListenerOnce(new IdleHandler() {
    @Override
    public void handle() {
        gMap.triggerResize();
        gMap.setCenter(myLatLng);
    }
});
like image 40
H Ser Avatar answered Dec 13 '25 11:12

H Ser



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!