vue-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 18.8 kB
Source Map (JSON)
{"version":3,"file":"BaiduMapMercatorProjection.mjs","sources":["../../../../../../packages/components/providers/baidu/BaiduMapMercatorProjection.ts"],"sourcesContent":["import Point from './Point'\nimport Pixel from './Pixel'\n\n// static EARTHRADIUS = 6370996.81\nconst EARTHRADIUS = 6378137\nconst MCBAND = [12890594.86, 8362377.87, 5591021, 3481989.83, 1678043.12, 0]\nconst LLBAND = [75, 60, 45, 30, 15, 0]\nconst MC2LL = [\n [\n 1.410526172116255e-8, 0.00000898305509648872, -1.9939833816331, 200.9824383106796, -187.2403703815547, 91.6087516669843, -23.38765649603339,\n 2.57121317296198, -0.03801003308653, 17337981.2\n ],\n [\n -7.435856389565537e-9, 0.000008983055097726239, -0.78625201886289, 96.32687599759846, -1.85204757529826, -59.36935905485877, 47.40033549296737,\n -16.50741931063887, 2.28786674699375, 10260144.86\n ],\n [\n -3.030883460898826e-8, 0.00000898305509983578, 0.30071316287616, 59.74293618442277, 7.357984074871, -25.38371002664745, 13.45380521110908,\n -3.29883767235584, 0.32710905363475, 6856817.37\n ],\n [\n -1.981981304930552e-8, 0.000008983055099779535, 0.03278182852591, 40.31678527705744, 0.65659298677277, -4.44255534477492, 0.85341911805263,\n 0.12923347998204, -0.04625736007561, 4482777.06\n ],\n [\n 3.09191371068437e-9, 0.000008983055096812155, 0.00006995724062, 23.10934304144901, -0.00023663490511, -0.6321817810242, -0.00663494467273,\n 0.03430082397953, -0.00466043876332, 2555164.4\n ],\n [\n 2.890871144776878e-9, 0.000008983055095805407, -3.068298e-8, 7.47137025468032, -0.00000353937994, -0.02145144861037, -0.00001234426596,\n 0.00010322952773, -0.00000323890364, 826088.5\n ]\n]\n\nconst LL2MC = [\n [\n -0.0015702102444, 111320.7020616939, 1704480524535203, -10338987376042340, 26112667856603880, -35149669176653700, 26595700718403920,\n -10725012454188240, 1800819912950474, 82.5\n ],\n [\n 0.0008277824516172526, 111320.7020463578, 647795574.6671607, -4082003173.641316, 10774905663.51142, -15171875531.51559, 12053065338.62167,\n -5124939663.577472, 913311935.9512032, 67.5\n ],\n [\n 0.00337398766765, 111320.7020202162, 4481351.045890365, -23393751.19931662, 79682215.47186455, -115964993.2797253, 97236711.15602145,\n -43661946.33752821, 8477230.501135234, 52.5\n ],\n [\n 0.00220636496208, 111320.7020209128, 51751.86112841131, 3796837.749470245, 992013.7397791013, -1221952.21711287, 1340652.697009075,\n -620943.6990984312, 144416.9293806241, 37.5\n ],\n [\n -0.0003441963504368392, 111320.7020576856, 278.2353980772752, 2485758.690035394, 6070.750963243378, 54821.18345352118, 9540.606633304236,\n -2710.55326746645, 1405.483844121726, 22.5\n ],\n [\n -0.0003218135878613132, 111320.7020701615, 0.00369383431289, 823725.6402795718, 0.46104986909093, 2351.343141331292, 1.58060784298199,\n 8.77738589078284, 0.37238884252424, 7.45\n ]\n]\n\n/**\n * Projection used by [Baidu Map]{@link https://github.com/openlayers/openlayers/issues/3522}\n */\nclass BaiduMapMercatorProjection {\n // constructor () {\n // super()\n // }\n\n /**\n * 根据平面直角坐标计算两点间距离;\n * @param {Point} point1 平面直角点坐标1\n * @param {Point} point2 平面直角点坐标2;\n * @return {Number} 返回两点间的距离\n */\n getDistanceByMC(point1, point2) {\n if (!point1 || !point2) return 0\n point1 = this.inverse(point1)\n if (!point1) return 0\n const x1 = toRadians(point1.lng)\n const y1 = toRadians(point1.lat)\n point2 = this.inverse(point2)\n if (!point2) return 0\n const x2 = toRadians(point2.lng)\n const y2 = toRadians(point2.lat)\n return getDistance(x1, x2, y1, y2)\n }\n\n /**\n * 根据经纬度坐标计算两点间距离;\n * @param {Point} point1 经纬度点坐标1\n * @param {Point} point2 经纬度点坐标2;\n * @return {Number} 返回两点间的距离\n */\n getDistanceByLL(point1, point2) {\n if (!point1 || !point2) return 0\n point1.lng = getLoop(point1.lng, -180, 180)\n point1.lat = getRange(point1.lat, -74, 74)\n point2.lng = getLoop(point2.lng, -180, 180)\n point2.lat = getRange(point2.lat, -74, 74)\n const x1 = toRadians(point1.lng)\n const y1 = toRadians(point1.lat)\n const x2 = toRadians(point2.lng)\n const y2 = toRadians(point2.lat)\n return getDistance(x1, x2, y1, y2)\n }\n\n /**\n * 平面直角坐标转换成经纬度坐标;\n * @param {Point} point 平面直角坐标\n * @return {Point} 返回经纬度坐标\n */\n inverse(point) {\n let factor\n const temp = new Point(Math.abs(point.lng), Math.abs(point.lat))\n for (let i = 0; i < MCBAND.length; i++) {\n if (temp.lat >= MCBAND[i]) {\n factor = MC2LL[i]\n break\n }\n }\n const lnglat = convertor(point, factor)\n return new Point(lnglat?.lng, lnglat?.lat)\n }\n\n /**\n * 经纬度坐标转换成平面直角坐标;\n * @param {Point} point 经纬度坐标\n * @return {Point} 返回平面直角坐标\n */\n forward(point) {\n let factor\n point.lng = getLoop(point.lng, -180, 180)\n point.lat = getRange(point.lat, -74, 74)\n const temp = new Point(point.lng, point.lat)\n for (let i = 0; i < LLBAND.length; i++) {\n if (temp.lat >= LLBAND[i]) {\n factor = LL2MC[i]\n break\n }\n }\n if (!factor) {\n for (let i = LLBAND.length - 1; i >= 0; i--) {\n if (temp.lat <= -LLBAND[i]) {\n factor = LL2MC[i]\n break\n }\n }\n }\n const mc = convertor(point, factor)\n return new Point(mc?.lng, mc?.lat)\n }\n\n /**\n * 经纬度变换至墨卡托坐标\n * @param Point 经纬度\n * @return Point 墨卡托\n */\n lngLatToMercator(point, curCity?) {\n return this.forward(point)\n }\n\n /**\n * 球面到平面坐标\n * @param Point 球面坐标\n * @return Pixel 平面坐标\n */\n lngLatToPoint(point: Point): Pixel {\n const mercator = this.forward(point)\n return new Pixel(mercator.lng, mercator.lat)\n }\n\n /**\n * 墨卡托变换至经纬度\n * @param Point 墨卡托\n * @returns Point 经纬度\n */\n mercatorToLngLat(point, curCity?) {\n return this.inverse(point)\n }\n\n /**\n * 平面到球面坐标\n * @param Pixel 平面坐标\n * @returns Point 球面坐标\n */\n pointToLngLat(point) {\n const mercator = new Point(point.x, point.y)\n return this.inverse(mercator)\n }\n\n /**\n * 地理坐标转换至像素坐标\n * @param Point 地理坐标\n * @param Number 级别\n * @param Point 地图中心点,注意为了保证没有误差,这里需要传递墨卡托坐标\n * @param Size 地图容器大小\n * @return Pixel 像素坐标\n */\n pointToPixel(point, zoom, mapCenter, mapSize, curCity) {\n if (!point) {\n return\n }\n point = this.lngLatToMercator(point, curCity)\n mapCenter = this.lngLatToMercator(mapCenter)\n const zoomUnits = this.getZoomUnits(zoom)\n const x = Math.round((point.lng - mapCenter.lng) / zoomUnits + mapSize.width / 2)\n const y = Math.round((mapCenter.lat - point.lat) / zoomUnits + mapSize.height / 2)\n return new Pixel(x, y)\n }\n\n /**\n * 像素坐标转换至地理坐标\n * @param Pixel 像素坐标\n * @param Number 级别\n * @param Point 地图中心点,注意为了保证没有误差,这里需要传递墨卡托坐标\n * @param Size 地图容器大小\n * @return Point 地理坐标\n */\n pixelToPoint(pixel, zoom, mapCenter, mapSize, curCity) {\n if (!pixel) {\n return\n }\n const zoomUnits = this.getZoomUnits(zoom)\n const lng = mapCenter.lng + zoomUnits * (pixel.x - mapSize.width / 2)\n const lat = mapCenter.lat - zoomUnits * (pixel.y - mapSize.height / 2)\n const point = new Point(lng, lat)\n return this.mercatorToLngLat(point, curCity)\n }\n\n getZoomUnits(zoom) {\n return Math.pow(2, 18 - zoom)\n }\n}\n\nfunction convertor(fromPoint, factor) {\n if (!fromPoint || !factor) {\n return\n }\n let x = factor[0] + factor[1] * Math.abs(fromPoint.lng)\n const temp = Math.abs(fromPoint.lat) / factor[9]\n let y =\n factor[2] +\n factor[3] * temp +\n factor[4] * temp * temp +\n factor[5] * temp * temp * temp +\n factor[6] * temp * temp * temp * temp +\n factor[7] * temp * temp * temp * temp * temp +\n factor[8] * temp * temp * temp * temp * temp * temp\n x *= fromPoint.lng < 0 ? -1 : 1\n y *= fromPoint.lat < 0 ? -1 : 1\n return new Point(x, y)\n}\n\nfunction getLoop(v, a, b) {\n while (v > b) {\n v -= b - a\n }\n while (v < a) {\n v += b - a\n }\n return v\n}\n\nfunction getRange(v, a, b) {\n if (a != null) {\n v = Math.max(v, a)\n }\n if (b != null) {\n v = Math.min(v, b)\n }\n return v\n}\n\nfunction getDistance(x1, x2, y1, y2) {\n return EARTHRADIUS * Math.acos(Math.sin(y1) * Math.sin(y2) + Math.cos(y1) * Math.cos(y2) * Math.cos(x2 - x1))\n}\n\nfunction toRadians(angdeg) {\n return (Math.PI * angdeg) / 180\n}\n\nfunction toDegrees(angrad) {\n return (180 * angrad) / Math.PI\n}\n\nexport default BaiduMapMercatorProjection\n"],"names":[],"mappings":"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"}