Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
458 views
in Technique[技术] by (71.8m points)

openlayers3 加载高德地图 偏移的问题

问题描述

项目中要使用openlayers3作为webgis的引擎,坐标系是EPSG:3857,再通过叠加天地图与高德地图作对比时发现,高德地图整体朝右下角偏移几百米.

问题出现的环境背景及自己尝试过哪些方法

根据度娘知道高德,腾讯等互联网地图都是GCJ-02的坐标系,尝试过网上的转换方法,但是好像针对百度地图有效,而且现在叠加百度地图和天地图已经可以了,就是高德地图有偏移

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

var url = '';
    if(layerName == 'vec'){// 有标注电子地图
        url = "http://webrd0{1-4}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&style=7&x={x}&y={y}&z={z}&ltype=0&scale=1";
    }else if(layerName == 'img'){// 无标注影像地图
        url = "https://webst0{1-4}.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}";
    }else if(layerName == 'img_i'){// 影像标注
        url = "https://wprd0{1-4}.is.autonavi.com/appmaptile?&x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=8&ltype=11";
    }
    var gaode = new ol.layer.Tile({
        name : params.layertitle,
        layerdescription: params.layerdescription,
        source: new ol.source.XYZ({
            projection: ol.proj.get('EPSG:3857'),
            url:url,
        })
    });
    return gaode;

这是百度转换后

var baiduMercatorProj = new ol.proj.Projection({
      code: 'baidu',
      extent: ol.extent.applyTransform(extent, projzh.ll2bmerc),
      units: 'm'
    });

ol.proj.addProjection(baiduMercatorProj);
ol.proj.addCoordinateTransforms('EPSG:4326', baiduMercatorProj, projzh.ll2bmerc, projzh.bmerc2ll);
ol.proj.addCoordinateTransforms('EPSG:3857', baiduMercatorProj, projzh.smerc2bmerc, projzh.bmerc2smerc);

你期待的结果是什么?实际看到的错误信息又是什么?

希望有大神指点一下迷津,


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

同样的问题,有解决吗?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...