/* * @Author: GuLiMmo 2820890765@qq.com * @Date: 2024-05-11 09:18:29 * @LastEditors: GuLiMmo 2820890765@qq.com * @LastEditTime: 2024-05-11 09:20:27 * @FilePath: /bigScreen/src/utils/cesium/webMercatorTilingScheme/index.js * @Description: 高德地图纠偏 * Copyright (c) 2024 by GuLiMmo, All Rights Reserved. */ import { WebMercatorProjection, WebMercatorTilingScheme, Math, Cartographic, Cartesian2, } from '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;