Google Maps API extract elevation value along routeExport KML from points plotted in javascript Google Maps API?Unit of Google Maps API geometry servicesGoogle Maps API v3 base map visibilityRemoving Google maps base layer from Google Maps APIExtracting latitude/longitude from javascript and passing to html formGoogle Maps Elevation licenseOpenlayers v4.0.1 support Google Maps Javascript API?How to dynamically load Google Maps markers around center coordinates?How to position custom button controls on Google Maps API?Point locator on polygon for onclick of elevation profile graph

Could Giant Ground Sloths have been a Good Pack Animal for the Ancient Mayans

How to manage monthly salary

What does 'script /dev/null' do?

Is it legal to have the "// (c) 2019 John Smith" header in all files when there are hundreds of contributors?

COUNT(id) or MAX(id) - which is faster?

Why do UK politicians seemingly ignore opinion polls on Brexit?

Where to refill my bottle in India?

extract characters between two commas?

How is it possible for user's password to be changed after storage was encrypted? (on OS X, Android)

What is the command to reset a PC without deleting any files

Symmetry in quantum mechanics

Is there a way to make member function NOT callable from constructor?

How can I fix this gap between bookcases I made?

Copycat chess is back

How to deal with fear of taking dependencies

Can I legally use front facing blue light in the UK?

What do the Banks children have against barley water?

Shall I use personal or official e-mail account when registering to external websites for work purpose?

Prime joint compound before latex paint?

Manga about a female worker who got dragged into another world together with this high school girl and she was just told she's not needed anymore

Piano - What is the notation for a double stop where both notes in the double stop are different lengths?

Does it makes sense to buy a new cycle to learn riding?

Was there ever an axiom rendered a theorem?

What are the advantages and disadvantages of running one shots compared to campaigns?



Google Maps API extract elevation value along route


Export KML from points plotted in javascript Google Maps API?Unit of Google Maps API geometry servicesGoogle Maps API v3 base map visibilityRemoving Google maps base layer from Google Maps APIExtracting latitude/longitude from javascript and passing to html formGoogle Maps Elevation licenseOpenlayers v4.0.1 support Google Maps Javascript API?How to dynamically load Google Maps markers around center coordinates?How to position custom button controls on Google Maps API?Point locator on polygon for onclick of elevation profile graph






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








2















I am using the Directions and Elevation Service of Google Maps, in order to extract the coordinates and the elevation along a route between a start and end point. I could set my directions service successfully, I could also extract the elevation values. Everything works fine at the first request, but if I send a second request I got the error message:



"InvalidValueError: in property path: fewer than 2 LatLngs".



screenshot of error message



I also noticed, that if I reload my page in Firefox, the error disappears. But if I don't reload my webpage, the error remains.



Below you can see my code:



$(window).on('load', function() 
var directionsDisplay;
directionsService = new google.maps.DirectionsService();
var map;
);

$(window).on('load', function ()
initMap();
);

function initMap()
directionsDisplay = new google.maps.DirectionsRenderer();

var mapOptions =
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: new google.maps.LatLng(48.7758459, 9.1829321),
mapTypeControl: false


map = new google.maps.Map(document.getElementById("map"), mapOptions);
directionsDisplay.setMap(map);



//take start and end from input field
function calcRoute() {

var start = document.getElementById("start").value;
var end = document.getElementById("end").value;

//send request to server
var request =
origin: start,
destination: end,
travelMode: google.maps.TravelMode.DRIVING
;

path = [];

//get result from google maps server as response
directionsService.route(request, function(response, status)
if (status == google.maps.DirectionsStatus.OK)
directionsDisplay.setDirections(response);

pointsArray = response.routes[0].overview_path;

var i = 0;
var j = 0;

//get long lat of vertices along route
for (j = 0; j < pointsArray.length; j++)
lat = pointsArray[j].lat();
lng = pointsArray[j].lng();

//save lat long in path array
path.push(new google.maps.LatLng(lat, lng));

//create marker
var marker = new google.maps.Marker(
position: new google.maps.LatLng(lat, lng),
map: map
);



);

//Create an ElevationService
var elevator = new google.maps.ElevationService;
displayPathElevation(path, elevator, map);

function displayPathElevation(path, elevator, map)

new google.maps.Polyline(
path: path,
strokeColor: '#0000CC',
strokeOpacity: 0.4,
map: map
);

elevator.getElevationAlongPath(
'path': path,
'samples': 256
, plotElevation);



function plotElevation(elevations, status)
if (status === 'OK')
for (var i=0; i < elevations.length; i++)
console.log(elevations[i].location.lat() );
console.log(elevations[i].location.lng() );
console.log(elevations[i].elevation);




;


Here are my libs and buttons:



<div id="wrapper">

<label for="Start">Start</label><input id="start" type="textbox"></input><br/>
<label for="End">End</label><input id="end" type="textbox"></input><br/><br/>
<input id="submit" type="button" class="btn btn-dark" value="search" onclick="calcRoute();"><br/><br/>
<div id="chart"></div>
</div>
<div id="map"></div>
<script defer src="https://maps.googleapis.com/maps/api /js?key=MY_API_KEY=initMap"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>











share|improve this question






























    2















    I am using the Directions and Elevation Service of Google Maps, in order to extract the coordinates and the elevation along a route between a start and end point. I could set my directions service successfully, I could also extract the elevation values. Everything works fine at the first request, but if I send a second request I got the error message:



    "InvalidValueError: in property path: fewer than 2 LatLngs".



    screenshot of error message



    I also noticed, that if I reload my page in Firefox, the error disappears. But if I don't reload my webpage, the error remains.



    Below you can see my code:



    $(window).on('load', function() 
    var directionsDisplay;
    directionsService = new google.maps.DirectionsService();
    var map;
    );

    $(window).on('load', function ()
    initMap();
    );

    function initMap()
    directionsDisplay = new google.maps.DirectionsRenderer();

    var mapOptions =
    zoom: 7,
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    center: new google.maps.LatLng(48.7758459, 9.1829321),
    mapTypeControl: false


    map = new google.maps.Map(document.getElementById("map"), mapOptions);
    directionsDisplay.setMap(map);



    //take start and end from input field
    function calcRoute() {

    var start = document.getElementById("start").value;
    var end = document.getElementById("end").value;

    //send request to server
    var request =
    origin: start,
    destination: end,
    travelMode: google.maps.TravelMode.DRIVING
    ;

    path = [];

    //get result from google maps server as response
    directionsService.route(request, function(response, status)
    if (status == google.maps.DirectionsStatus.OK)
    directionsDisplay.setDirections(response);

    pointsArray = response.routes[0].overview_path;

    var i = 0;
    var j = 0;

    //get long lat of vertices along route
    for (j = 0; j < pointsArray.length; j++)
    lat = pointsArray[j].lat();
    lng = pointsArray[j].lng();

    //save lat long in path array
    path.push(new google.maps.LatLng(lat, lng));

    //create marker
    var marker = new google.maps.Marker(
    position: new google.maps.LatLng(lat, lng),
    map: map
    );



    );

    //Create an ElevationService
    var elevator = new google.maps.ElevationService;
    displayPathElevation(path, elevator, map);

    function displayPathElevation(path, elevator, map)

    new google.maps.Polyline(
    path: path,
    strokeColor: '#0000CC',
    strokeOpacity: 0.4,
    map: map
    );

    elevator.getElevationAlongPath(
    'path': path,
    'samples': 256
    , plotElevation);



    function plotElevation(elevations, status)
    if (status === 'OK')
    for (var i=0; i < elevations.length; i++)
    console.log(elevations[i].location.lat() );
    console.log(elevations[i].location.lng() );
    console.log(elevations[i].elevation);




    ;


    Here are my libs and buttons:



    <div id="wrapper">

    <label for="Start">Start</label><input id="start" type="textbox"></input><br/>
    <label for="End">End</label><input id="end" type="textbox"></input><br/><br/>
    <input id="submit" type="button" class="btn btn-dark" value="search" onclick="calcRoute();"><br/><br/>
    <div id="chart"></div>
    </div>
    <div id="map"></div>
    <script defer src="https://maps.googleapis.com/maps/api /js?key=MY_API_KEY=initMap"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>











    share|improve this question


























      2












      2








      2








      I am using the Directions and Elevation Service of Google Maps, in order to extract the coordinates and the elevation along a route between a start and end point. I could set my directions service successfully, I could also extract the elevation values. Everything works fine at the first request, but if I send a second request I got the error message:



      "InvalidValueError: in property path: fewer than 2 LatLngs".



      screenshot of error message



      I also noticed, that if I reload my page in Firefox, the error disappears. But if I don't reload my webpage, the error remains.



      Below you can see my code:



      $(window).on('load', function() 
      var directionsDisplay;
      directionsService = new google.maps.DirectionsService();
      var map;
      );

      $(window).on('load', function ()
      initMap();
      );

      function initMap()
      directionsDisplay = new google.maps.DirectionsRenderer();

      var mapOptions =
      zoom: 7,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: new google.maps.LatLng(48.7758459, 9.1829321),
      mapTypeControl: false


      map = new google.maps.Map(document.getElementById("map"), mapOptions);
      directionsDisplay.setMap(map);



      //take start and end from input field
      function calcRoute() {

      var start = document.getElementById("start").value;
      var end = document.getElementById("end").value;

      //send request to server
      var request =
      origin: start,
      destination: end,
      travelMode: google.maps.TravelMode.DRIVING
      ;

      path = [];

      //get result from google maps server as response
      directionsService.route(request, function(response, status)
      if (status == google.maps.DirectionsStatus.OK)
      directionsDisplay.setDirections(response);

      pointsArray = response.routes[0].overview_path;

      var i = 0;
      var j = 0;

      //get long lat of vertices along route
      for (j = 0; j < pointsArray.length; j++)
      lat = pointsArray[j].lat();
      lng = pointsArray[j].lng();

      //save lat long in path array
      path.push(new google.maps.LatLng(lat, lng));

      //create marker
      var marker = new google.maps.Marker(
      position: new google.maps.LatLng(lat, lng),
      map: map
      );



      );

      //Create an ElevationService
      var elevator = new google.maps.ElevationService;
      displayPathElevation(path, elevator, map);

      function displayPathElevation(path, elevator, map)

      new google.maps.Polyline(
      path: path,
      strokeColor: '#0000CC',
      strokeOpacity: 0.4,
      map: map
      );

      elevator.getElevationAlongPath(
      'path': path,
      'samples': 256
      , plotElevation);



      function plotElevation(elevations, status)
      if (status === 'OK')
      for (var i=0; i < elevations.length; i++)
      console.log(elevations[i].location.lat() );
      console.log(elevations[i].location.lng() );
      console.log(elevations[i].elevation);




      ;


      Here are my libs and buttons:



      <div id="wrapper">

      <label for="Start">Start</label><input id="start" type="textbox"></input><br/>
      <label for="End">End</label><input id="end" type="textbox"></input><br/><br/>
      <input id="submit" type="button" class="btn btn-dark" value="search" onclick="calcRoute();"><br/><br/>
      <div id="chart"></div>
      </div>
      <div id="map"></div>
      <script defer src="https://maps.googleapis.com/maps/api /js?key=MY_API_KEY=initMap"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>











      share|improve this question
















      I am using the Directions and Elevation Service of Google Maps, in order to extract the coordinates and the elevation along a route between a start and end point. I could set my directions service successfully, I could also extract the elevation values. Everything works fine at the first request, but if I send a second request I got the error message:



      "InvalidValueError: in property path: fewer than 2 LatLngs".



      screenshot of error message



      I also noticed, that if I reload my page in Firefox, the error disappears. But if I don't reload my webpage, the error remains.



      Below you can see my code:



      $(window).on('load', function() 
      var directionsDisplay;
      directionsService = new google.maps.DirectionsService();
      var map;
      );

      $(window).on('load', function ()
      initMap();
      );

      function initMap()
      directionsDisplay = new google.maps.DirectionsRenderer();

      var mapOptions =
      zoom: 7,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      center: new google.maps.LatLng(48.7758459, 9.1829321),
      mapTypeControl: false


      map = new google.maps.Map(document.getElementById("map"), mapOptions);
      directionsDisplay.setMap(map);



      //take start and end from input field
      function calcRoute() {

      var start = document.getElementById("start").value;
      var end = document.getElementById("end").value;

      //send request to server
      var request =
      origin: start,
      destination: end,
      travelMode: google.maps.TravelMode.DRIVING
      ;

      path = [];

      //get result from google maps server as response
      directionsService.route(request, function(response, status)
      if (status == google.maps.DirectionsStatus.OK)
      directionsDisplay.setDirections(response);

      pointsArray = response.routes[0].overview_path;

      var i = 0;
      var j = 0;

      //get long lat of vertices along route
      for (j = 0; j < pointsArray.length; j++)
      lat = pointsArray[j].lat();
      lng = pointsArray[j].lng();

      //save lat long in path array
      path.push(new google.maps.LatLng(lat, lng));

      //create marker
      var marker = new google.maps.Marker(
      position: new google.maps.LatLng(lat, lng),
      map: map
      );



      );

      //Create an ElevationService
      var elevator = new google.maps.ElevationService;
      displayPathElevation(path, elevator, map);

      function displayPathElevation(path, elevator, map)

      new google.maps.Polyline(
      path: path,
      strokeColor: '#0000CC',
      strokeOpacity: 0.4,
      map: map
      );

      elevator.getElevationAlongPath(
      'path': path,
      'samples': 256
      , plotElevation);



      function plotElevation(elevations, status)
      if (status === 'OK')
      for (var i=0; i < elevations.length; i++)
      console.log(elevations[i].location.lat() );
      console.log(elevations[i].location.lng() );
      console.log(elevations[i].elevation);




      ;


      Here are my libs and buttons:



      <div id="wrapper">

      <label for="Start">Start</label><input id="start" type="textbox"></input><br/>
      <label for="End">End</label><input id="end" type="textbox"></input><br/><br/>
      <input id="submit" type="button" class="btn btn-dark" value="search" onclick="calcRoute();"><br/><br/>
      <div id="chart"></div>
      </div>
      <div id="map"></div>
      <script defer src="https://maps.googleapis.com/maps/api /js?key=MY_API_KEY=initMap"></script>
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>








      javascript google-maps web-mapping google-maps-api google-maps-api-3






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Jul 24 '18 at 16:48









      nmtoken

      8,08642866




      8,08642866










      asked Feb 7 '18 at 13:09









      santasanta

      313




      313




















          1 Answer
          1






          active

          oldest

          votes


















          0














          Try setting a timeout on the displayPathElevation function.



          setTimeout(function()
          displayPathElevation(path, elevator, map);
          , 500);






          share|improve this answer























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "79"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f270599%2fgoogle-maps-api-extract-elevation-value-along-route%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            Try setting a timeout on the displayPathElevation function.



            setTimeout(function()
            displayPathElevation(path, elevator, map);
            , 500);






            share|improve this answer



























              0














              Try setting a timeout on the displayPathElevation function.



              setTimeout(function()
              displayPathElevation(path, elevator, map);
              , 500);






              share|improve this answer

























                0












                0








                0







                Try setting a timeout on the displayPathElevation function.



                setTimeout(function()
                displayPathElevation(path, elevator, map);
                , 500);






                share|improve this answer













                Try setting a timeout on the displayPathElevation function.



                setTimeout(function()
                displayPathElevation(path, elevator, map);
                , 500);







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Jul 24 '18 at 16:17









                bradbrad

                1




                1



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Geographic Information Systems Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgis.stackexchange.com%2fquestions%2f270599%2fgoogle-maps-api-extract-elevation-value-along-route%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    រឿង រ៉ូមេអូ និង ហ្ស៊ុយលីយេ សង្ខេបរឿង តួអង្គ បញ្ជីណែនាំ

                    Crop image to path created in TikZ? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Crop an inserted image?TikZ pictures does not appear in posterImage behind and beyond crop marks?Tikz picture as large as possible on A4 PageTransparency vs image compression dilemmaHow to crop background from image automatically?Image does not cropTikzexternal capturing crop marks when externalizing pgfplots?How to include image path that contains a dollar signCrop image with left size given

                    Romeo and Juliet ContentsCharactersSynopsisSourcesDate and textThemes and motifsCriticism and interpretationLegacyScene by sceneSee alsoNotes and referencesSourcesExternal linksNavigation menu"Consumer Price Index (estimate) 1800–"10.2307/28710160037-3222287101610.1093/res/II.5.31910.2307/45967845967810.2307/2869925286992510.1525/jams.1982.35.3.03a00050"Dada Masilo: South African dancer who breaks the rules"10.1093/res/os-XV.57.1610.2307/28680942868094"Sweet Sorrow: Mann-Korman's Romeo and Juliet Closes Sept. 5 at MN's Ordway"the original10.2307/45957745957710.1017/CCOL0521570476.009"Ram Leela box office collections hit massive Rs 100 crore, pulverises prediction"Archived"Broadway Revival of Romeo and Juliet, Starring Orlando Bloom and Condola Rashad, Will Close Dec. 8"Archived10.1075/jhp.7.1.04hon"Wherefore art thou, Romeo? To make us laugh at Navy Pier"the original10.1093/gmo/9781561592630.article.O006772"Ram-leela Review Roundup: Critics Hail Film as Best Adaptation of Romeo and Juliet"Archived10.2307/31946310047-77293194631"Romeo and Juliet get Twitter treatment""Juliet's Nurse by Lois Leveen""Romeo and Juliet: Orlando Bloom's Broadway Debut Released in Theaters for Valentine's Day"Archived"Romeo and Juliet Has No Balcony"10.1093/gmo/9781561592630.article.O00778110.2307/2867423286742310.1076/enst.82.2.115.959510.1080/00138380601042675"A plague o' both your houses: error in GCSE exam paper forces apology""Juliet of the Five O'Clock Shadow, and Other Wonders"10.2307/33912430027-4321339124310.2307/28487440038-7134284874410.2307/29123140149-661129123144728341M"Weekender Guide: Shakespeare on The Drive""balcony"UK public library membership"romeo"UK public library membership10.1017/CCOL9780521844291"Post-Zionist Critique on Israel and the Palestinians Part III: Popular Culture"10.2307/25379071533-86140377-919X2537907"Capulets and Montagues: UK exam board admit mixing names up in Romeo and Juliet paper"Istoria Novellamente Ritrovata di Due Nobili Amanti2027/mdp.390150822329610820-750X"GCSE exam error: Board accidentally rewrites Shakespeare"10.2307/29176390149-66112917639"Exam board apologises after error in English GCSE paper which confused characters in Shakespeare's Romeo and Juliet""From Mariotto and Ganozza to Romeo and Guilietta: Metamorphoses of a Renaissance Tale"10.2307/37323537323510.2307/2867455286745510.2307/28678912867891"10 Questions for Taylor Swift"10.2307/28680922868092"Haymarket Theatre""The Zeffirelli Way: Revealing Talk by Florentine Director""Michael Smuin: 1938-2007 / Prolific dance director had showy career"The Life and Art of Edwin BoothRomeo and JulietRomeo and JulietRomeo and JulietRomeo and JulietEasy Read Romeo and JulietRomeo and Julieteeecb12003684p(data)4099369-3n8211610759dbe00d-a9e2-41a3-b2c1-977dd692899302814385X313670221313670221