高德地图 Web JS API示例学习笔记(14)——其他LBS服务(轨迹纠偏、天气预报)

文章目录

  • 轨迹纠偏
    • 驾车轨迹纠偏
  • 天气预报
    • 天气预报

轨迹纠偏

驾车轨迹纠偏

GraspRoad的驾车轨迹纠偏接口可以将偏离道路的轨迹路径纠正到道路上

 var graspRoad;
        var pathParam = [
        {"x":116.478928,"y":39.997761,"sp":19,"ag":0, "tm":1478031031},
        {"x":116.478907,"y":39.998422,"sp":10,"ag":0, "tm":2},
        {"x":116.479384,"y":39.998546,"sp":10,"ag":110,"tm":3},
        {"x":116.481053,"y":39.998204,"sp":10,"ag":120,"tm":4},
        {"x":116.481793,"y":39.997868,"sp":10,"ag":120,"tm":5},
        {"x":116.482898,"y":39.998217,"sp":10,"ag":30, "tm":6},
        {"x":116.483789,"y":39.999063,"sp":10,"ag":30, "tm":7},
        {"x":116.484674,"y":39.999844,"sp":10,"ag":30, "tm":8}]

        var path1 = [];
        for(var i=0;i<pathParam.length;i+=1){
          path1.push([pathParam[i].x,pathParam[i].y])
        }
        var oldLine = new AMap.Polyline({
          path:path1,
          strokeWeight:8,
          strokeOpacity:1,
          strokeColor:'red'
        })
        map.add(oldLine)
        if(!graspRoad) {
            graspRoad = new AMap.GraspRoad()
        }
        graspRoad.driving(pathParam,function(error,result){
          if(!error){
            var path2 = [];
            var newPath = result.data.points;
            for(var i =0;i<newPath.length;i+=1){
              path2.push([newPath[i].x,newPath[i].y])
            }
            var newLine = new AMap.Polyline({
              path:path2,
              strokeWeight:8,
              strokeOpacity:0.8,
              strokeColor:'#0091ea',
              showDir:true
            })
            map.add(newLine)
            map.setFitView()
          }
        })

本例将行驶轨迹的坐标数据传入,由插件自动纠偏,需要用到的时候,直接用就行。

天气预报

天气预报

使用Weather插件,获取指定地区的天气信息,可用于天气查询等场景。

 AMap.plugin('AMap.Weather', function() {
        var weather = new AMap.Weather();
        //查询实时天气信息, 查询的城市到行政级别的城市,如朝阳区、杭州市
        weather.getLive('朝阳区', function(err, data) {
            if (!err) {
                var str = [];
                str.push('

实时天气' + '


'
); str.push('

城市/区:' + data.city + '

'
); str.push('

天气:' + data.weather + '

'
); str.push('

温度:' + data.temperature + '℃

'
); str.push('

风向:' + data.windDirection + '

'
); str.push('

风力:' + data.windPower + ' 级

'
); str.push('

空气湿度:' + data.humidity + '

'
); str.push('

发布时间:' + data.reportTime + '

'
); var marker = new AMap.Marker({map: map, position: map.getCenter()}); var infoWin = new AMap.InfoWindow({ content: '
'+str.join('')+'
'
, isCustom:true, offset: new AMap.Pixel(0, -37) }); infoWin.open(map, marker.getPosition()); marker.on('mouseover', function() { infoWin.open(map, marker.getPosition()); }); } }); //未来4天天气预报 weather.getForecast('朝阳区', function(err, data) { if (err) {return;} var str = []; for (var i = 0,dayWeather; i < data.forecasts.length; i++) { dayWeather = data.forecasts[i]; str.push(dayWeather.date+' '+dayWeather.dayWeather+' '+ dayWeather.nightTemp + '~' + dayWeather.dayTemp + '℃'); } document.getElementById('forecast').innerHTML = str.join('
'
); }); });

通过插件可获取当天的实时天气和最近4天的天气预报。

你可能感兴趣的:(WebGIS)