我想在我的网站上显示与谷歌地图中转方向类似的内容,因此我尝试在同一地图上显示多种不同类型的路线。例如,我想展示一个旅行,你步行到公共汽车,乘公共汽车到其他街道,然后步行到你的最终目的地。
为此,我尝试使用自定义标记在同一地图上获取多个路线请求的结果。我有一个名为change_map()的函数,它应该在地图上显示其中一个行程的信息。
我有两个问题:
我是javascript的新手,抱歉,如果我的代码糟透了,感谢您的帮助!
var trip_map
function renderDirections(result) {
var directionsDisplay = new google.maps.DirectionsRenderer;
directionsDisplay.setMap(trip_map);
directionsDisplay.suppressMarkers = true;
directionsDisplay.setDirections(result);
}
function requestDirections(start, end) {
var directionsService = new google.maps.DirectionsService;
directionsService.route({
origin: start,
destination: end,
travelMode: google.maps.DirectionsTravelMode.DRIVING
}, function(result) {
renderDirections(result);
});
}
function change_map(pk) {
var myOptions = {
center: new google.maps.LatLng(-34.397, 150.644),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
trip_map = new google.maps.Map(document.getElementById("trip_map"),
myOptions);
var bounds = new google.maps.LatLngBounds();
for (var j = 0; j < latlngpairs.length; j++) {
var GPS = new google.maps.LatLng({lat:latlngpairs[0],
lng:latlngpairs[1]});
var end_marker = new google.maps.Marker({position: GPS,
map: trip_map,
title: "Hello World!"});
bounds.extend(end_GPS);
}
requestDirections(parts[j], parts[j+1]);
}
//trip_map.fitBounds(bounds);
}
答案 0 :(得分:1)
我认为问题在于你将一个对象作为参数传递给循环中的LatLng构造函数
更改
var GPS = new google.maps.LatLng({lat:latlngpairs[0],lng:latlngpairs[1]});
与
var GPS = new google.maps.LatLng(latlngpairs[0],latlngpairs[1]);
希望能解决它。