У меня есть карта, которая содержит файл GeoJson с линиями, отображающий некоторые дорожки. Можно ли использовать службу Elevation Service API Карт Google для создания профилей высот для каждой функциональной строки файла GeoJson? Я хочу, чтобы профиль высоты отображался, когда я нажимаю одну из линий.Создать профиль высоты от функции GeoJson
Что-то как в этом примере: http://www.trailforks.com/region/la-bouilladisse/
Мой код, до сих пор выглядит следующим образом:
google.load("visualization", "1", {packages: ["columnchart"]});
function initialize() {
var options = {
center: new google.maps.LatLng(44.701991, 22.624884),
zoom: 12,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
map = new google.maps.Map(document.getElementById("map"), options);
trasee = new google.maps.Data()
trasee.loadGeoJson('http://googledrive.com/host/0B55_4P6vMjhITEU4Ym9iVG8yZUU/trasee.geojson')
trasee.setMap(map)
styling = (function(feature) {
var clasificare = feature.getProperty('Tip_drum');
var culoare;
if (clasificare == ('Poteca'))
(culoare = 'brown')
else if (clasificare == ('Drum forestier'))
(culoare = 'green')
else if (clasificare == ('Drum comunal (neasfaltat)'))
(culoare = 'brown')
else if (clasificare == ('Drum judetean (neasfaltat)'))
(culoare = 'brown')
else if (clasificare == ('Drum comunal (asfaltat)'))
(culoare = 'gray')
else if (clasificare == ('Drum judetean (asfaltat)'))
(culoare = 'gray')
else
(culoare = 'black')
return ({
strokeColor: culoare,
strokeWeight: 3
})
})
trasee.setStyle(styling)
elevator = new google.maps.ElevationService();
}
Я знаю, что я должен сделать запрос, как это: уаг pathRequest = { ' path ': источник latlng для создания пути ' samples ': 256 }
Так что, в принципе, я думаю, что GeoJson нужно добавить где-нибудь в i n pathRequest, но я не знаю, как и как создать другой график высоты для каждой функции в моем файле GeoJson.
ОК, так что теперь я пытаюсь отобразить высоты диаграммы вместе с атрибутом Tip_drum в infowindows, когда я нажимаю данные. Я добавил этот код:
map.data.addListener('click', function (event) {
document.getElementById('info').innerHTML = event.feature.getProperty('Tip_drum')
var content = document.createElement('div')
var elevations = document.getElementById('elevation_chart')
var types = document.getElementById('info')
content.appendChild(elevations)
content.appendChild(types)
infowindow.setContent(content)
infowindow.setPosition(event.latLng)
infowindow.setMap(map)
if (event.feature.getGeometry().getType() === 'LineString') {
drawPath(event.feature.getGeometry().getArray());
Все работает нормально, пока я не закрою один из инфо-окон вручную. После этого информационные окна больше не появятся.
Конечно, это возможное. Как выглядит ваш код? – geocodezip
Вы можете, конечно, добавить профили высоты для линий при нажатии. Существует много строк, поэтому вам нужно будет создать график возвышения «по требованию» (при нажатии на линию). Вы можете добавить прослушиватель кликов к слою данных, получить координаты пути и отправить их в службу высот. – geocodezip