/* * @Author: GuLiMmo 2820890765@qq.com * @Date: 2024-05-11 09:18:29 * @LastEditors: shuishen 1109946754@qq.com * @LastEditTime: 2024-11-27 11:19:55 * @FilePath: \bigScreen\src\pages\layout\components\scomponents\cesium\AmapMercatorTilingScheme\index.js * @Description: 高德地图纠偏 * Copyright (c) 2024 by GuLiMmo, All Rights Reserved. */ const { WebMercatorProjection, WebMercatorTilingScheme, Math, Cartographic, Cartesian2, } = DC.__namespace.Cesium // window.DC.getLib('Cesium') import CoordTransform from './CoordTransform' class AmapMercatorTilingScheme extends WebMercatorTilingScheme { constructor() { super() let projection = new WebMercatorProjection() this._projection.project = function (cartographic, result) { result = CoordTransform.WGS84ToGCJ02( Math.toDegrees(cartographic.longitude), Math.toDegrees(cartographic.latitude), ) result = projection.project( new Cartographic( Math.toRadians(result[0]), Math.toRadians(result[1]), ), ) return new Cartesian2(result.x, result.y) } this._projection.unproject = function (cartesian, result) { let cartographic = projection.unproject(cartesian) result = CoordTransform.GCJ02ToWGS84( Math.toDegrees(cartographic.longitude), Math.toDegrees(cartographic.latitude), ) return new Cartographic( Math.toRadians(result[0]), Math.toRadians(result[1]), ) } } } export default AmapMercatorTilingScheme