2016-04-22 5 views
-1

Я пытаюсь получить высоту точки на карте, но функция высоты, предложенная API googlemaps, не работает, и я не знаю почему. Кажется, что программа даже не выполняет функцию.получить высоту маркера googlemaps

Вот моя функция:

var elevationService = new google.maps.ElevationService(); 

var requestElevation = { 
'locations': gmarkers[0].getPosition()}; 

elevationService.getElevationForLocations(requestElevation, function(results, status) { 
if (status == google.maps.ElevationStatus.OK) { 
    if (results[0]) { 
    document.getElementById('denivele_circuit').value = parseFloat(results[0].elevation.toFixed(1)) + "mètres"; 
    } 
} }); 

ответ

1

Я получаю ошибку яваскрипта с кодом: Uncaught InvalidValueError: in property locations: not an Array

locations свойство в LocationElevationRequest должен быть массивом.

from the documentation для google.maps.LocationElevationRequest спецификации объекта

запроса к несанкционированному посланный ElevationService, содержащей перечень дискретных координат (LatLngs), для которых данные о высоте.

Свойство

Место Тип: Массива

дискретные местоположения, для которых получить возвышения.

var requestElevation = { 
    'locations': [gmarkers[0].getPosition()] 
}; 

proof of concept fiddle

фрагмент кода:

var gmarkers = []; 
 

 
function initialize() { 
 
    var map = new google.maps.Map(
 
    document.getElementById("map_canvas"), { 
 
     center: new google.maps.LatLng(37.4419, -122.1419), 
 
     zoom: 13, 
 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
 
    }); 
 
    var marker = new google.maps.Marker({ 
 
    position: map.getCenter(), 
 
    map: map 
 
    }); 
 
    gmarkers.push(marker); 
 
    var elevationService = new google.maps.ElevationService(); 
 

 
    var requestElevation = { 
 
    'locations': [gmarkers[0].getPosition()] 
 
    }; 
 

 
    elevationService.getElevationForLocations(requestElevation, function(results, status) { 
 
    if (status == google.maps.ElevationStatus.OK) { 
 
     if (results[0]) { 
 
     document.getElementById('denivele_circuit').value = parseFloat(results[0].elevation.toFixed(1)) + " mètres"; 
 
     } 
 
    } 
 
    }); 
 

 
} 
 
google.maps.event.addDomListener(window, "load", initialize);
html, 
 
body, 
 
#map_canvas { 
 
    height: 100%; 
 
    width: 100%; 
 
    margin: 0px; 
 
    padding: 0px 
 
}
<script src="https://maps.googleapis.com/maps/api/js"></script> 
 
<input id="denivele_circuit" /> 
 
<div id="map_canvas"></div>

+0

Благодаря это работает. Я думал, что уже попробовал, но я, вероятно, этого не сделал. –

 Смежные вопросы

  • Нет связанных вопросов^_^