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