如何转换latlong数据为航点值/ calculateRoute()? (HERE API /矩阵API)

时间:2019-03-16 00:48:56

标签: javascript latitude-longitude here-api

lat,长坐标通过geocode()函数保存。 (用户在html输入中输入城市和街道->接收的纬度长数据格式为(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值?如果我手动在waypoint0内部传递lat long值,则一切正常,但我想动态进行。

我只是从javascript开始,所以如果它很容易解决,请不要恨我。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好的,我自己解决了。

执行以下操作:

  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");
    });
  }

因此,只需在geocoder.geocode()函数内部调用calculateRoute()函数(将纬度和经度传递给它),然后才可以使用calculateRoute()函数中的纬度和经度来计算距离。