所以我试图使用WALKING旅行模式将我的折线捕捉到道路,目前我有一条WORKING折线,当用户的地理位置移动时更新,然后从旧位置移除旧的折线并绘制一个新的一个从新起点到目的地,但这是一个直线,“如乌鸦飞行”线。
function polyLine(myPos){
var start;
if (!start){
start = geoMarker.position;
}else{
start = myPos;
}
var end = marker.position;
var pathCoords = [start, end];
var pathGo = new google.maps.Polyline({
path: pathCoords,
map: googleMap,
strokeColor: "#FF0000",
strokeOpacity: 0.7,
strokeWeight: 2
});
polyLineArray.push(pathGo);
}
我也尝试过通过其他线程在这里找到的各种代码片段,但无法使用。这就是我目前正在玩的。
function calcDist(myPos) {
var start;
if (!start){
start = geoMarker.position;
}else{
start = myPos;
}
var end = marker.position;
var request = {
origin: start,
destination: end,
travelMode: google.maps.TravelMode.WALKING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK)
{
var steps = response.routes[0].legs[0].steps;
for(var step = 0; step < steps.length; step++)
{
polylineOptions = {
map: googleMap,
strokeColor: "#FF0000",
strokeOpacity: 0.7,
strokeWeight: 2,
path: steps[step].path
}
drawPoly = new google.maps.Polyline(polylineOptions);
}
drawPoly.getPath().push(ble);
}
});
}
所以我想知道我的语法对于行走方向是否正确,函数是否成功地拉过所有coords,因为它使用与polyLine()相同的变量,但在calcDist上根本没有绘制任何行 感谢。
修改
执行类似于Google地图文档的操作,仍然没有运气
var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
function calcDist(myPos) {
var start;
if (!start){
start = geoMarker.position;
}else{
start = myPos;
}
var end = marker.position;
var request = {
origin:start,
destination:end,
travelMode: google.maps.DirectionsTravelMode.WALKING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}