0

我正在使用 Google Maps API v.3 创建一个 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);
    }

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

既然地图画布更小了,我该如何重新定位地图?

4

1 回答 1

1

当地图 div 更改大小时,按照文档中的规定触发地图上的调整大小事件

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

于 2013-04-13T19:11:12.977 回答