You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AmapMercatorTilingScheme.js 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. /**
  2. * @Author : Caven Chen
  3. */
  4. import { Cesium } from '../../../namespace'
  5. import { CoordTransform } from '../../transform'
  6. class AmapMercatorTilingScheme extends Cesium.WebMercatorTilingScheme {
  7. constructor(options) {
  8. super(options)
  9. let projection = new Cesium.WebMercatorProjection()
  10. this._projection.project = function (cartographic, result) {
  11. result = CoordTransform.WGS84ToGCJ02(
  12. Cesium.Math.toDegrees(cartographic.longitude),
  13. Cesium.Math.toDegrees(cartographic.latitude)
  14. )
  15. result = projection.project(
  16. new Cesium.Cartographic(
  17. Cesium.Math.toRadians(result[0]),
  18. Cesium.Math.toRadians(result[1])
  19. )
  20. )
  21. return new Cesium.Cartesian2(result.x, result.y)
  22. }
  23. this._projection.unproject = function (cartesian, result) {
  24. let cartographic = projection.unproject(cartesian)
  25. result = CoordTransform.GCJ02ToWGS84(
  26. Cesium.Math.toDegrees(cartographic.longitude),
  27. Cesium.Math.toDegrees(cartographic.latitude)
  28. )
  29. return new Cesium.Cartographic(
  30. Cesium.Math.toRadians(result[0]),
  31. Cesium.Math.toRadians(result[1])
  32. )
  33. }
  34. }
  35. }
  36. export default AmapMercatorTilingScheme