ポリライン (Google ルート案内によって生成されたルート) とそのポリライン上にないマーカーとの間の直接 (最短) 距離を計算する便利な方法はありますか?
私が見つけた唯一の方法は、頂点を手動で循環Polyline.getPath()
させて最短距離を計算することですが、それは少し厳しいようです:
var path = routes[0].overview_path;
for (var i = 0; i < data.points.length; i++) {
var latLngA = new LatLng(data.points[i].lat, data.points[i].lng);
var shortest_distance = null;
for (var j = 0; j < path.length; j++) {
var distance = google.maps.geometry.spherical.computeDistanceBetween(latLngA, path[i]);
if (shortest_distance == null || distance < shortest_distance) {
shortest_distance = distance;
}
}
console.log(data.points[i].point_title, shortest_distance);
}
前もって感謝します!