1

そのため、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);

    }

});
}

したがって、私の構文が徒歩方向に対して正しいかどうか疑問に思っています。関数は 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);
      }
    });
}
4

0 に答える 0