在地图画布更改大小API后重新启动Google地图

时间:2013-04-13 18:31:35

标签: javascript google-maps-api-3

我正在使用Google Maps API v.3创建一个方向与this example by google非常相似的Google地图。

主要区别在于,在页面加载时,谷歌地图画布设置为100%,当用户请求路线时,地图减少到70%(为方向面板腾出空间)

当用户获得路线时,方向显示为地图画布处于100%而不是70%,基本上切断了部分路线。当显示方向响应时,我需要地图重新定向/重新定位。

您可以在此处演示:http://j2designpartnership.com/directions/

当用户键入方向时,此功能称为:calcRoute()

function calcRoute() {

        if (document.getElementById("start").value != "") {
            activeSettings();
        }
        else{
            defaultSettings();
        }

        var start = document.getElementById("start").value;
        var end = document.getElementById("end").value;


        var request = {
            origin:start, 
            destination:end,
            travelMode: google.maps.DirectionsTravelMode.DRIVING
        };

            //make the request for our directions
            directionsService.route(request, function(response, status) {

                if (status == google.maps.DirectionsStatus.OK) {

                    directionsDisplay.setDirections(response);
                }
            });

            var recenter = new google.maps.LatLng(40.440625,-79.995886);
            map.setCenter(recenter);
    }

这里要注意的部分是顶部条件,如果输入字段中有文本,它基本上会改变地图画布的宽度。

如果地图画布较小,我如何重新定位地图?

1 个答案:

答案 0 :(得分:1)

当地图div更改大小时,会触发the documentation

中指定的地图上的调整大小事件
  

调整大小|没有|当div改变大小时,开发人员应该在地图上触发此事件:   google.maps.event.trigger(map,'resize')。