我正在使用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);
}
这里要注意的部分是顶部条件,如果输入字段中有文本,它基本上会改变地图画布的宽度。
如果地图画布较小,我如何重新定位地图?
答案 0 :(得分:1)
当地图div更改大小时,会触发the documentation
中指定的地图上的调整大小事件调整大小|没有|当div改变大小时,开发人员应该在地图上触发此事件: google.maps.event.trigger(map,'resize')。