Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

AmapMercatorTilingScheme.js 1.2KB

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