Как преобразовать данные latlong для значения путевой точки / calculateRoute()? (ЗДЕСЬ API / Matrix API)

#javascript #latitude-longitude #here-api

#javascript #широта-долгота #здесь-api

Вопрос:

широтные, длинные координаты сохраняются из функции geocode(). (пользователь ввел город и улицу в html-ввод -> получил данные latlong в виде (50.4342,8.4324))

как мне поместить переменную latlong внутри значения waypoint0, не получая ошибок?

 var lat = 50.4342;
var long = 8.4324;
var latlong = lat   ','   long;

function calculateRoute(platform, coordinates) 
  {


    var router = platform.getRoutingService(),
    parameters = {
      waypoint0: '', //<- insert latlong variable 
      waypoint1: '49.998700,8.249140',
      mode: 'fastest;car;traffic:enabled',
      departure: 'now'};

    router.calculateRoute(parameters,
    function (result) {
      console.log(result);
      console.log(latlongstr);
    }, function (error) {
      console.log("error");
    });
  }
  

как мне преобразовать широту и длину для значения waypoint0? если я передам значения lat long внутри waypoint0 вручную, тогда все работает, но я хотел бы сделать это динамически.

я только начинаю с javascript, поэтому, пожалуйста, не ненавидьте меня, если это легко решить.

большое вам спасибо за помощь.

Ответ №1:

Хорошо, я решил это сам.

Сделайте это:

   function geocode(platform, street2, city2) 
  {
    var street3 = street2;
    var city3 = city2; 

    var geocoder = platform.getGeocodingService(),
    parameters = {
      searchtext: street3   city3 ,
      gen: '9'};

   geocoder.geocode(parameters,
    function (result) {
       var lat = result.Response.View[0].Result[0].Location.DisplayPosition.Latitude;
       var long = result.Response.View[0].Result[0].Location.DisplayPosition.Longitude;
       calculateRoute(platform, lat, long);
    }, function (error) {
      console.log("Retrieving Latitude and Longitude failed! Refresh the page and try again.");
    });



    function calculateRoute(platform,latitude,longitude) 
  {
    var x = latitude;
    var y = longitude;
    var router = platform.getRoutingService(),
    parameters = {
      waypoint0: x   ","   y,
      waypoint1: '49.998700,8.249140',
      mode: 'fastest;car;traffic:enabled',
      departure: 'now'};

    router.calculateRoute(parameters,
    function (result) {
      console.log(result.response.route[0].summary.distance);
    }, function (error) {
      console.log("error");
    });
  }
  

Итак, просто вызовите функцию calculateRoute() внутри функции geocoder.geocode() (передайте широту и длину вместе с ней), и только тогда вы сможете использовать широту и долготу в функции calculateRoute() для вычисления расстояния.