2016-04-22 16 views
-1

マップ上のポイントの標高を取得しようとしましたが、googlemapsのAPIで提案されている標高関数が機能せず、理由がわかりません。 プログラマーは機能を果たさないようです。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

私はあなたのコードでJavaScriptのエラーが表示されます。LocationElevationRequestUncaught InvalidValueError: in property locations: not an Array

locationsプロパティが配列でなければなりません。 google.maps.LocationElevationRequestオブジェクト仕様

高度データを返すための離散座標(LatLngs)のリストを含むElevationServiceによって送信されたエレベーション要求の

from the documentation

プロパティ

場所タイプ:標高を取得するためのアレイ

別々の位置。

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

感謝。私はすでにそれを試みたと思ったが、おそらく私はしなかった。 –

関連する問題