丨绝对丨 2019-05-11 01:37 采纳率: 0%
浏览 1324

高德地图3D模式下PathSimplifier轨迹显示错误

高德地图3D模式下调用PathSimplifier,会使网页显示的地图强制变为俯视视角,设置的角度失效,网页上也无法调整,导致网页上显示的轨迹偏移,通过地图缩放可以看出。求大佬帮忙看看问题出在哪儿了,感激不尽!!!

图片说明

图片说明

路径数据导入的外部文件。地图JS代码如下

    var buildings = new AMap.Buildings({
        'zooms':[3,20],
        'zIndex':10,
        'heightFactor':2//2倍于默认高度,3D下有效
    });//楼块图层 
    //创建地图
    var map = new AMap.Map('container', {
       viewMode:'3D',
        pitch:60,
        rotation:-35,
        features:['bg','road','point'],//隐藏默认楼块
        mapStyle:'amap://styles/light',
        layers: [new AMap.TileLayer.Satellite(),//高德默认标准图层
                 buildings],
        center: [116.360159,39.961302],
        resizeEnable: true,
        expandZoomRange:true,
        zoom:15,
        zooms:[3,20]
    });

    AMapUI.load(['ui/misc/PathSimplifier', 'lib/$'], function(PathSimplifier, $) {
        if (!PathSimplifier.supportCanvas) {
            alert('当前环境不支持 Canvas!');
            return;
        }

        var pathSimplifierIns = new PathSimplifier({
            zIndex: 100,
            autoSetFitView: false,
            map: map, //所属的地图实例

            getPath: function(pathData, pathIndex) {

                return pathData.path;
            },
            getHoverTitle: function(pathData, pathIndex, pointIndex) {

                if (pointIndex >= 0) {
                    //point 
                    return pathData.name + ',点:' + pointIndex + '/' + pathData.path.length;
                }

                return pathData.name + ',点数量' + pathData.path.length;
            },
            renderOptions: {

                renderAllPointsIfNumberBelow: 100 //绘制路线节点,如不需要可设置为-1
            }
        });

        window.pathSimplifierIns = pathSimplifierIns;

            endIdx = 0,
           myData = [{
                      name:'无人机路径',
                      path: data.slice(0, 1)
                      }];
        pathSimplifierIns.setData(myData);

        //对第一条线路(即索引 0)创建一个巡航器
        var navg1 = pathSimplifierIns.createPathNavigator(0, {
            loop: true, //循环播放
            speed: 50 //巡航速度,单位千米/小时
        });

        function expandPath() {

            function doExpand() {

                endIdx++;

                if (endIdx >= data.length) {
                    return false;
                }

                var cursor = navg1.getCursor().clone(), //保存巡航器的位置
                    status = navg1.getNaviStatus();


                myData[0].path = data.slice(0, endIdx + 1);
                pathSimplifierIns.setData(myData); //延展路径


                //重新建立一个巡航器
                navg1 = pathSimplifierIns.createPathNavigator(0, {
                    loop: true, //循环播放
                    speed: 50 //巡航速度,单位千米/小时
                });

                if (status !== 'stop') {
                    navg1.start();
                }

                //恢复巡航器的位置
                if (cursor.idx >= 0) {
                    navg1.moveToPoint(cursor.idx, cursor.tail);
                }

                return true;
            }

            if (doExpand()) {

                setTimeout(expandPath, 3000);
            }
        }


        navg1.start();

        expandPath();

    });
  • 写回答

1条回答

  • 我是最棒的007 2019-08-16 18:00
    关注

    这个组件好像在3D效果下有问题

    评论

报告相同问题?

悬赏问题

  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)