这是我的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);
但它不起作用。我的地图配置有什么问题?
答案 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
将刷新地图的视口,以便显示完整的路线。
这将完成(您的脚本中初始设置的边界将被丢弃)。
要获得另一个结果(保留当前视口,但扩展它也使路径可见),您必须:
preserveViewPort
的{{1}}选项设置为DirectionsRenderer
(默认为true
)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]);
}
});
检查答案是否包含不同的点