Я создал полилинию, используя массив координат с кодом, адаптированным из https://google-developers.appspot.com/maps/documentation/javascript/examples/polyline-simple
Хотя первым (и, вероятно, худшим) методом построения линии был просто огромный список точек широты и долготы. Все еще изучаю приемы программирования, приношу свои извинения. Я географ, а не программист!
Я хочу получить высоту от этой линии и создать график профиля высоты. Я новичок в JS и не знаю, как отлаживать то, что не работает. Кажется, я не могу заполнить массив путей координатами полилинии.
В настоящее время он настроен на отправку bikeCourseCoordinates в новый массив, который затем будет использоваться в качестве пути. Я пробовал, просто используя массив bikeCourseCoordinates в качестве «пути», но это тоже не сработало.
Онлайн (но не рабочая версия) здесь: http://geography.uoregon.edu:50000/bentesting/map_try3.html
function drawPath() {
// Create a new chart in the elevation_chart DIV.
chart = new google.visualization.ColumnChart(document.getElementById('elevation_chart'));
var path = new Array;
path.push(bikeCourseCoordinates);
// Create a PathElevationRequest object using this array.
var pathRequest = {
'path': path,
'samples': 256
}
// Initiate the path request.
elevator.getElevationAlongPath(pathRequest, plotElevation);
}
// Takes an array of ElevationResult objects, draws the path on the map
// and plots the elevation profile on a Visualization API ColumnChart.
function plotElevation(results, status) {
if (status == google.maps.ElevationStatus.OK) {
elevations = results;
// Extract the elevation samples from the returned results
// and store them in an array of LatLngs.
var elevationPath = [];
for (var i = 0; i < results.length; i++) {
elevationPath.push(elevations[i].location);
}
// Extract the data from which to populate the chart.
// Because the samples are equidistant, the 'Sample'
// column here does double duty as distance along the
// X axis.
var data = new google.visualization.DataTable();
data.addColumn('string', 'Sample');
data.addColumn('number', 'Elevation');
for (var i = 0; i < results.length; i++) {
data.addRow(['', elevations[i].elevation]);
}
// Draw the chart using the data within its DIV.
document.getElementById('elevation_chart').style.display = 'block';
chart.draw(data, {
width: 640,
height: 200,
legend: 'none',
titleY: 'Elevation (m)'
});
}
}