UNPKG

vue-cesium

Version:
1 lines 13.2 kB
{"version":3,"file":"BaiduMapTilingScheme.mjs","sources":["../../../../../../packages/components/providers/baidu/BaiduMapTilingScheme.ts"],"sourcesContent":["import BaiduMapMercatorProjection from './BaiduMapMercatorProjection'\nimport Point from './Point'\nimport * as coordtransform from '@vue-cesium/utils/coordtransform'\n\n/**\n * A tiling scheme for geometry referenced to a BaiduMapMercatorProjection {@link https://cesium.com/docs/cesiumjs-ref-doc/WebMercatorTilingScheme.html}\n * {@link https://github.com/openlayers/openlayers/issues/3522#issuecomment-570493906}\n */\nclass BaiduMapMercatorTilingScheme {\n _ellipsoid: Cesium.Ellipsoid\n _projection: any\n _rectangleSouthwestInMeters: any\n _rectangleNortheastInMeters: any\n _rectangle: any\n resolutions: number[]\n constructor(options) {\n const { defaultValue, Ellipsoid, WebMercatorProjection, Cartesian2, Cartographic, Math: CesiumMath, Rectangle } = Cesium\n options = options || {}\n this._ellipsoid = defaultValue(options.ellipsoid, Ellipsoid.WGS84)\n this._projection = new WebMercatorProjection(this._ellipsoid)\n const baiduProjection = new BaiduMapMercatorProjection()\n this._projection.project = function (cartographic, result) {\n result = result || {}\n\n if (options.projectionTransforms && options.projectionTransforms.from !== options.projectionTransforms.to) {\n if (options.projectionTransforms.to.toUpperCase() === 'WGS84') {\n result = coordtransform.wgs84togcj02(CesiumMath.toDegrees(cartographic.longitude), CesiumMath.toDegrees(cartographic.latitude))\n result = coordtransform.gcj02tobd09(result[0], result[1])\n } else {\n result = coordtransform.gcj02tobd09(CesiumMath.toDegrees(cartographic.longitude), CesiumMath.toDegrees(cartographic.latitude))\n }\n }\n result[0] = Math.min(result[0], 180)\n result[0] = Math.max(result[0], -180)\n result[1] = Math.min(result[1], 74)\n result[1] = Math.max(result[1], -74)\n result = baiduProjection.lngLatToPoint(new Point(result[0], result[1]))\n return new Cartesian2(result.x, result.y)\n }\n\n this._projection.unproject = function (cartographic, result) {\n result = result || {}\n result = baiduProjection.mercatorToLngLat(new Point(cartographic.x, cartographic.y))\n result[0] = ((result[0] + 180) % 360) - 180\n if (options.projectionTransforms && options.projectionTransforms.from !== options.projectionTransforms.to) {\n if (options.projectionTransforms.to.toUpperCase() === 'WGS84') {\n result = coordtransform.bd09togcj02(result.lng, result.lat)\n result = coordtransform.gcj02towgs84(result[0], result[1])\n } else {\n result = coordtransform.bd09togcj02(result.lng, result.lat)\n }\n }\n return new Cartographic(Cesium.Math.toRadians(result[0]), Cesium.Math.toRadians(result[1]))\n }\n\n this._rectangleSouthwestInMeters = new Cartesian2(-20037726.37, -12474104.17)\n this._rectangleNortheastInMeters = new Cartesian2(20037726.37, 12474104.17)\n const rectangleSouthwestInMeters = this._projection.unproject(this._rectangleSouthwestInMeters)\n const rectangleNortheastInMeters = this._projection.unproject(this._rectangleNortheastInMeters)\n this._rectangle = new Rectangle(\n rectangleSouthwestInMeters.longitude,\n rectangleSouthwestInMeters.latitude,\n rectangleNortheastInMeters.longitude,\n rectangleNortheastInMeters.latitude\n )\n\n this.resolutions = []\n for (let i = 0; i < 19; i++) {\n this.resolutions[i] = 256 * Math.pow(2, 18 - i)\n }\n }\n\n getNumberOfXTilesAtLevel(level) {\n return 1 << level\n }\n\n getNumberOfYTilesAtLevel(level) {\n return 1 << level\n }\n\n rectangleToNativeRectangle(rectangle, result) {\n const { defined, Rectangle } = Cesium\n const projection = this._projection\n const southwest = projection.project(Rectangle.southwest(rectangle))\n const northeast = projection.project(Rectangle.northeast(rectangle))\n\n if (!defined(result)) {\n return new Rectangle(southwest.x, southwest.y, northeast.x, northeast.y)\n }\n\n result.west = southwest.x\n result.south = southwest.y\n result.east = northeast.x\n result.north = northeast.y\n return result\n }\n\n tileXYToNativeRectangle(x, y, level, result) {\n const { defined, Rectangle } = Cesium\n const tileWidth = this.resolutions[level]\n const west = x * tileWidth\n const east = (x + 1) * tileWidth\n const north = ((y = -y) + 1) * tileWidth\n const south = y * tileWidth\n\n if (!defined(result)) {\n return new Rectangle(west, south, east, north)\n }\n\n result.west = west\n result.south = south\n result.east = east\n result.north = north\n return result\n }\n\n tileXYToRectangle(x, y, level, result) {\n const { Cartesian2 } = Cesium\n const nativeRectangle = this.tileXYToNativeRectangle(x, y, level, result)\n\n const projection = this._projection\n const southwest = projection.unproject(new Cartesian2(nativeRectangle.west, nativeRectangle.south))\n const northeast = projection.unproject(new Cartesian2(nativeRectangle.east, nativeRectangle.north))\n\n nativeRectangle.west = southwest.longitude\n nativeRectangle.south = southwest.latitude\n nativeRectangle.east = northeast.longitude\n nativeRectangle.north = northeast.latitude\n return nativeRectangle\n }\n\n positionToTileXY(position, level, result) {\n const { Rectangle, defined, Cartesian2 } = Cesium\n const rectangle = this._rectangle\n if (!Rectangle.contains(rectangle, position)) {\n // outside the bounds of the tiling scheme\n return undefined\n }\n\n const projection = this._projection\n const webMercatorPosition = projection.project(position)\n if (!defined(webMercatorPosition)) {\n return undefined\n }\n\n const tileWidth = this.resolutions[level]\n const xTileCoordinate = Math.floor(webMercatorPosition.x / tileWidth)\n const yTileCoordinate = -Math.floor(webMercatorPosition.y / tileWidth)\n\n if (!defined(result)) {\n return new Cartesian2(xTileCoordinate, yTileCoordinate)\n }\n\n result.x = xTileCoordinate\n result.y = yTileCoordinate\n return result\n }\n\n get ellipsoid() {\n return this._ellipsoid\n }\n\n get rectangle() {\n return this._rectangle\n }\n\n get projection() {\n return this._projection\n }\n}\n\nexport default BaiduMapMercatorTilingScheme\n"],"names":["coordtransform.wgs84togcj02","coordtransform.gcj02tobd09","coordtransform.bd09togcj02","coordtransform.gcj02towgs84"],"mappings":"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"}