问题描述
项目中要使用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}<ype=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<ype=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);
你期待的结果是什么?实际看到的错误信息又是什么?
希望有大神指点一下迷津,
同样的问题,有解决吗?