Я создал ломаную линию, используя массив координат с кодом адаптированный https://google-developers.appspot.com/maps/documentation/javascript/examples/polyline-simpleСоздать профиль рельефа от полилинии массив координат
Хотя первый (и, возможно, худший) метод, чтобы сделать линию был просто огромный список лат/lng points. Все еще изучая программные трюки, прошу прощения. Я географ не программист!
Я хочу получить возвышение от этой линии и создать граф профиля высоты. Я новичок в 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)'
});
}
}