casc-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 13.5 kB
Source Map (JSON)
{"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 'casc-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: any\n _projection: any\n _rectangleSouthwestInMeters: any\n _rectangleNortheastInMeters: any\n _rectangle: any\n resolutions: any[]\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 projection = 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.000022)\n result[1] = Math.max(result[1], -71.988531)\n result = projection.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 = projection.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":";;;;AAGA,MAAM,4BAA4B,CAAC;AACnC,EAAE,WAAW,CAAC,OAAO,EAAE;AACvB,IAAI,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,qBAAqB,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;AAC7H,IAAI,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;AAC5B,IAAI,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;AACvE,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAClE,IAAI,MAAM,UAAU,GAAG,IAAI,0BAA0B,EAAE,CAAC;AACxD,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE;AAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;AAC5B,MAAM,IAAI,OAAO,CAAC,oBAAoB,IAAI,OAAO,CAAC,oBAAoB,CAAC,IAAI,KAAK,OAAO,CAAC,oBAAoB,CAAC,EAAE,EAAE;AACjH,QAAQ,IAAI,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AACvE,UAAU,MAAM,GAAGA,YAA2B,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1I,UAAU,MAAM,GAAGC,WAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,SAAS,MAAM;AACf,UAAU,MAAM,GAAGA,WAA0B,CAAC,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzI,SAAS;AACT,OAAO;AACP,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC5C,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AACjD,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;AAClD,MAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzE,MAAM,OAAO,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;AAChD,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,SAAS,YAAY,EAAE,MAAM,EAAE;AAChE,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;AAC5B,MAAM,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC;AAChD,MAAM,IAAI,OAAO,CAAC,oBAAoB,IAAI,OAAO,CAAC,oBAAoB,CAAC,IAAI,KAAK,OAAO,CAAC,oBAAoB,CAAC,EAAE,EAAE;AACjH,QAAQ,IAAI,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AACvE,UAAU,MAAM,GAAGC,WAA0B,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACtE,UAAU,MAAM,GAAGC,YAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACrE,SAAS,MAAM;AACf,UAAU,MAAM,GAAGD,WAA0B,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;AACtE,SAAS;AACT,OAAO;AACP,MAAM,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClG,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,2BAA2B,GAAG,IAAI,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,CAAC;AACtF,IAAI,IAAI,CAAC,2BAA2B,GAAG,IAAI,UAAU,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACpF,IAAI,MAAM,0BAA0B,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACpG,IAAI,MAAM,0BAA0B,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACpG,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,SAAS,CAAC,0BAA0B,CAAC,SAAS,EAAE,0BAA0B,CAAC,QAAQ,EAAE,0BAA0B,CAAC,SAAS,EAAE,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AAC1L,IAAI,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AAC1B,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;AACjC,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;AACtD,KAAK;AACL,GAAG;AACH,EAAE,wBAAwB,CAAC,KAAK,EAAE;AAClC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,wBAAwB,CAAC,KAAK,EAAE;AAClC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;AACtB,GAAG;AACH,EAAE,0BAA0B,CAAC,SAAS,EAAE,MAAM,EAAE;AAChD,IAAI,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;AAC1C,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;AACxC,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AACzE,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AACzE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC1B,MAAM,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/E,KAAK;AACL,IAAI,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC;AAC9B,IAAI,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;AAC/B,IAAI,MAAM,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC;AAC9B,IAAI,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC;AAC/B,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;AAC/C,IAAI,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;AAC1C,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAI,MAAM,IAAI,GAAG,CAAC,GAAG,SAAS,CAAC;AAC/B,IAAI,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;AACrC,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC;AAC7C,IAAI,MAAM,KAAK,GAAG,CAAC,GAAG,SAAS,CAAC;AAChC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC1B,MAAM,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACvB,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACzB,IAAI,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;AACvB,IAAI,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACzB,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;AACzC,IAAI,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;AAClC,IAAI,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC9E,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;AACxC,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AACxG,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AACxG,IAAI,eAAe,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC;AAC/C,IAAI,eAAe,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC/C,IAAI,eAAe,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC;AAC/C,IAAI,eAAe,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC;AAC/C,IAAI,OAAO,eAAe,CAAC;AAC3B,GAAG;AACH,EAAE,gBAAgB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE;AAC5C,IAAI,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;AACtD,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC;AACtC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE;AAClD,MAAM,OAAO,KAAK,CAAC,CAAC;AACpB,KAAK;AACL,IAAI,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;AACxC,IAAI,MAAM,mBAAmB,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;AACvC,MAAM,OAAO,KAAK,CAAC,CAAC;AACpB,KAAK;AACL,IAAI,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC9C,IAAI,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAC1E,IAAI,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAC3E,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAC1B,MAAM,OAAO,IAAI,UAAU,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAC9D,KAAK;AACL,IAAI,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC;AAC/B,IAAI,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC;AAC/B,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,SAAS,GAAG;AAClB,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC;AAC3B,GAAG;AACH,EAAE,IAAI,UAAU,GAAG;AACnB,IAAI,OAAO,IAAI,CAAC,WAAW,CAAC;AAC5B,GAAG;AACH;;;;"}