将折线贴在道路上

时间:2013-02-28 10:27:51

标签: google-maps-api-3 geolocation polyline

所以我试图使用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);
      }
    });
}

0 个答案:

没有答案