谷歌地图api中的缩放太大了

时间:2014-03-12 06:52:33

标签: javascript google-maps google-maps-api-3

这是我的fiddle。在这里,我用气球显示了当前位置和结束位置。 我试图在地图中的起点和终点之间设置方向。在这种情况下,不显示方向的标记可能是因为两者共享共同位置。但是变焦太大了,导致它没有覆盖起点和终点。用户必须双击右键才能看到开始和位置。

我也试过了,

    new_boundary = new google.maps.LatLngBounds();
    new_boundary.extend(new google.maps.LatLng(start));
    new_boundary.extend(new google.maps.LatLng(end));
    map.fitBounds(new_boundary);

但它不起作用。我的地图配置有什么问题?

3 个答案:

答案 0 :(得分:1)

你的脚本在这一行打破了(至少对我而言):

dir=((Math.atan2(z.lng()-a.lng(),z.lat()-a.lat())*180)/Math.PI)+360

看看这一行:

z=(step.lat_lngs.length)?step.lat_lngs[1]:step.end_point,

第一步lat_lngs.length为1,因此step.lat_lngs[1]未定义,z.lng()的调用失败,“无法调用方法'lng'未定义”

可能修复该错误:

z=(step.lat_lngs.length>1)?step.lat_lngs[step.lat_lngs.length-1]:step.end_point,

与缩放相关: 如果您没有禁用完整的UI,您会看到结果(缩放)是正确的。

默认情况下,DirectionsRenderer将刷新地图的视口,以便显示完整的路线。 这将完成(您的脚本中初始设置的边界将被丢弃)。

要获得另一个结果(保留当前视口,但扩展它也使路径可见),您必须:

  1. preserveViewPort的{​​{1}}选项设置为DirectionsRenderer(默认为true
  2. 使用路径的边界扩展地图的边界

  3. false

答案 1 :(得分:0)

此代码正确for example

添加

时地图更改分辨率
 directionsDisplay.setDirections(response);
  

setDirections(directions:DirectionsResult)无将渲染器设置为   使用DirectionsService的结果。设置有效的一组   以这种方式的方向将显示在方向上的方向   渲染器指定的地图和面板。

希望,我理解正确的问题,英语我不是我的母语

答案 2 :(得分:0)

尝试将验证添加为

        directionsService.route(request, function(response, status) {
            if (status == google.maps.DirectionsStatus.OK) {
 if(!response.routes[0].bounds.getNorthEast().equals(response.routes[0].bounds.getSouthWest())){
                 directionsDisplay.setDirections(response);   
                }
                addDirections(response.routes[0]);
            }
        });

检查答案是否包含不同的点