bbj-screen-widget 2.4.67 → 2.4.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/bbj-screen-widget.d.ts +15 -12
  2. package/bbj-screen-widget.metadata.json +1 -1
  3. package/bundles/bbj-screen-widget-core.umd.js +147 -4
  4. package/bundles/bbj-screen-widget-core.umd.js.map +1 -1
  5. package/bundles/bbj-screen-widget-core.umd.min.js +1 -1
  6. package/bundles/bbj-screen-widget-core.umd.min.js.map +1 -1
  7. package/bundles/bbj-screen-widget.umd.js +1313 -205
  8. package/bundles/bbj-screen-widget.umd.js.map +1 -1
  9. package/bundles/bbj-screen-widget.umd.min.js +1 -1
  10. package/bundles/bbj-screen-widget.umd.min.js.map +1 -1
  11. package/core/bbj-screen-widget-core.metadata.json +1 -1
  12. package/core/public_api.d.ts +2 -0
  13. package/core/util/map.util.d.ts +23 -0
  14. package/core/util/scale.util.d.ts +4 -0
  15. package/esm2015/bbj-screen-widget.js +16 -13
  16. package/esm2015/core/public_api.js +3 -1
  17. package/esm2015/core/util/map.util.js +104 -0
  18. package/esm2015/core/util/scale.util.js +33 -0
  19. package/esm2015/lib/custom-baidu-map/custom-baidu-map.component.js +4 -42
  20. package/esm2015/lib/screen-widget.module.js +7 -1
  21. package/esm2015/lib/tianditu/base-layer.js +80 -0
  22. package/esm2015/lib/tianditu/tianditu-marker/tianditu-marker.component.js +666 -0
  23. package/esm2015/lib/tianditu/tianditu.component.js +399 -0
  24. package/esm2015/lib/tianditu/tianditu.module.js +21 -0
  25. package/esm2015/public-api.js +2 -1
  26. package/fesm2015/bbj-screen-widget-core.js +138 -1
  27. package/fesm2015/bbj-screen-widget-core.js.map +1 -1
  28. package/fesm2015/bbj-screen-widget.js +1193 -86
  29. package/fesm2015/bbj-screen-widget.js.map +1 -1
  30. package/lib/custom-baidu-map/custom-baidu-map.component.d.ts +1 -1
  31. package/lib/tianditu/base-layer.d.ts +20 -0
  32. package/lib/tianditu/tianditu-marker/tianditu-marker.component.d.ts +63 -0
  33. package/lib/tianditu/tianditu.component.d.ts +53 -0
  34. package/lib/tianditu/tianditu.module.d.ts +4 -0
  35. package/package.json +1 -1
  36. package/public-api.d.ts +1 -0
@@ -2,6 +2,7 @@ import { InjectionToken, ɵɵdefineInjectable, ɵɵinject, Injectable, Optional,
2
2
  import { __awaiter } from 'tslib';
3
3
  import { LazyService as LazyService$1 } from '@delon/util';
4
4
  import { LazyService } from '@delon/util/other';
5
+ import { takeUntil, take } from 'rxjs/operators';
5
6
 
6
7
  const SCREEN_WIDGET_CONFIG = new InjectionToken('screen-widget.config');
7
8
 
@@ -106,9 +107,145 @@ BaiduMapService.ctorParameters = () => [
106
107
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [SCREEN_WIDGET_CONFIG,] }] }
107
108
  ];
108
109
 
110
+ function scaleAdapter(scale$, destroy$, zone, element, widgetRef) {
111
+ scale$.pipe(takeUntil(destroy$)).subscribe((scale) => {
112
+ const { x: sx, y: sy, scaleContent } = scale;
113
+ const style = element.style;
114
+ if (scaleContent === false) {
115
+ zone.onStable.pipe(take(1)).subscribe(() => {
116
+ const parent = element.parentNode;
117
+ if (parent) {
118
+ const match = /translate\(([-\d.]+)px, ([-\d.]+)px\)/.exec(parent.style.transform);
119
+ if (match) {
120
+ const offsetX = parseFloat(match[1]);
121
+ const offsetY = parseFloat(match[2]);
122
+ style.transform = `translate(${-offsetX}px,${-offsetY}px)`;
123
+ style.height = parent.clientHeight + offsetY + 'px';
124
+ style.width = parent.clientWidth + offsetX + 'px';
125
+ style.padding = `${offsetY}px 0 0 ${offsetX}px`;
126
+ }
127
+ }
128
+ });
129
+ }
130
+ else {
131
+ const { position, size } = widgetRef.widget;
132
+ const { x, y } = position;
133
+ const { width, height } = size;
134
+ style.transform = `translate(${-x}px,${-y}px) scale(${1 / sx},${1 / sy})`;
135
+ style.height = (y + height) * sy + 'px';
136
+ style.width = (x + width) * sx + 'px';
137
+ style.padding = `${y * sy}px 0 0 ${x * sx}px`;
138
+ }
139
+ });
140
+ }
141
+
142
+ //定义一些常量
143
+ var x_PI = (3.14159265358979324 * 3000.0) / 180.0;
144
+ var PI = 3.1415926535897932384626;
145
+ var a = 6378245.0;
146
+ var ee = 0.00669342162296594323;
147
+ /**
148
+ * 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换
149
+ * 即 百度 转 谷歌、高德
150
+ */
151
+ function bd09togcj02(bd_lon, bd_lat) {
152
+ var x_pi = (3.14159265358979324 * 3000.0) / 180.0;
153
+ var x = bd_lon - 0.0065;
154
+ var y = bd_lat - 0.006;
155
+ var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
156
+ var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
157
+ var gg_lng = z * Math.cos(theta);
158
+ var gg_lat = z * Math.sin(theta);
159
+ return [gg_lng, gg_lat];
160
+ }
161
+ /**
162
+ * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换
163
+ * 即谷歌、高德 转 百度
164
+ */
165
+ function gcj02tobd09(lng, lat) {
166
+ var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
167
+ var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
168
+ var bd_lng = z * Math.cos(theta) + 0.0065;
169
+ var bd_lat = z * Math.sin(theta) + 0.006;
170
+ return [bd_lng, bd_lat];
171
+ }
172
+ /**
173
+ * WGS84转GCj02
174
+ */
175
+ function wgs84togcj02(lng, lat) {
176
+ if (out_of_china(lng, lat)) {
177
+ return [lng, lat];
178
+ }
179
+ else {
180
+ var dlat = transformlat(lng - 105.0, lat - 35.0);
181
+ var dlng = transformlng(lng - 105.0, lat - 35.0);
182
+ var radlat = (lat / 180.0) * PI;
183
+ var magic = Math.sin(radlat);
184
+ magic = 1 - ee * magic * magic;
185
+ var sqrtmagic = Math.sqrt(magic);
186
+ dlat = (dlat * 180.0) / (((a * (1 - ee)) / (magic * sqrtmagic)) * PI);
187
+ dlng = (dlng * 180.0) / ((a / sqrtmagic) * Math.cos(radlat) * PI);
188
+ var mglat = lat + dlat;
189
+ var mglng = lng + dlng;
190
+ return [mglng, mglat];
191
+ }
192
+ }
193
+ /**
194
+ * GCJ02 转换为 WGS84
195
+ */
196
+ function gcj02towgs84(lng, lat) {
197
+ if (out_of_china(lng, lat)) {
198
+ return [lng, lat];
199
+ }
200
+ else {
201
+ var dlat = transformlat(lng - 105.0, lat - 35.0);
202
+ var dlng = transformlng(lng - 105.0, lat - 35.0);
203
+ var radlat = (lat / 180.0) * PI;
204
+ var magic = Math.sin(radlat);
205
+ magic = 1 - ee * magic * magic;
206
+ var sqrtmagic = Math.sqrt(magic);
207
+ dlat = (dlat * 180.0) / (((a * (1 - ee)) / (magic * sqrtmagic)) * PI);
208
+ dlng = (dlng * 180.0) / ((a / sqrtmagic) * Math.cos(radlat) * PI);
209
+ var mglat = lat + dlat;
210
+ var mglng = lng + dlng;
211
+ return [lng * 2 - mglng, lat * 2 - mglat];
212
+ }
213
+ }
214
+ /**
215
+ * BD09 转换为 WGS84
216
+ */
217
+ function bd09towgs84(lng, lat) {
218
+ var rel = bd09togcj02(lng, lat);
219
+ return gcj02towgs84(rel[0], rel[1]);
220
+ }
221
+ function wgs84tobd09(lng, lat) {
222
+ var rel = wgs84togcj02(lng, lat);
223
+ return gcj02tobd09(rel[0], rel[1]);
224
+ }
225
+ function transformlat(lng, lat) {
226
+ var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
227
+ ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0;
228
+ ret += ((20.0 * Math.sin(lat * PI) + 40.0 * Math.sin((lat / 3.0) * PI)) * 2.0) / 3.0;
229
+ ret += ((160.0 * Math.sin((lat / 12.0) * PI) + 320 * Math.sin((lat * PI) / 30.0)) * 2.0) / 3.0;
230
+ return ret;
231
+ }
232
+ function transformlng(lng, lat) {
233
+ var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
234
+ ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0;
235
+ ret += ((20.0 * Math.sin(lng * PI) + 40.0 * Math.sin((lng / 3.0) * PI)) * 2.0) / 3.0;
236
+ ret += ((150.0 * Math.sin((lng / 12.0) * PI) + 300.0 * Math.sin((lng / 30.0) * PI)) * 2.0) / 3.0;
237
+ return ret;
238
+ }
239
+ /**
240
+ * 判断是否在国内,不在国内则不做偏移
241
+ */
242
+ function out_of_china(lng, lat) {
243
+ return lng < 72.004 || lng > 137.8347 || lat < 0.8293 || lat > 55.8271 || false;
244
+ }
245
+
109
246
  /**
110
247
  * Generated bundle index. Do not edit.
111
248
  */
112
249
 
113
- export { BaiduMapService, SCREEN_WIDGET_CONFIG };
250
+ export { BaiduMapService, SCREEN_WIDGET_CONFIG, bd09togcj02, bd09towgs84, gcj02tobd09, gcj02towgs84, scaleAdapter, wgs84tobd09, wgs84togcj02 };
114
251
  //# sourceMappingURL=bbj-screen-widget-core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bbj-screen-widget-core.js","sources":["../../../projects/screen-widget/core/src/model/screen-widget.config.ts","../../../projects/screen-widget/core/src/service/baidu-map.service.ts","../../../projects/screen-widget/core/src/bbj-screen-widget-core.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport interface ScreenWidgetConfig {\r\n baiduMap: { ak: string };\r\n}\r\n\r\nexport const SCREEN_WIDGET_CONFIG = new InjectionToken<ScreenWidgetConfig>('screen-widget.config');\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { LazyService } from '@delon/util';\r\nimport { SCREEN_WIDGET_CONFIG, ScreenWidgetConfig } from '../model/screen-widget.config';\r\n\r\ndeclare const BMap;\r\ndeclare const BMapGL;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BaiduMapService {\r\n private loadMapPromise: Promise<any>;\r\n private loadMapGLPromise: Promise<any>;\r\n private loadMarkerClustererPromise: Promise<any>;\r\n private loadMarkerClustererGLPromise: Promise<any>;\r\n private loadMapVGLPromise: Promise<any>;\r\n private ak = 'pLeoKEjQUcij1is3778ssPLrPfNg1Hjf';\r\n constructor(public lazy: LazyService, @Optional() @Inject(SCREEN_WIDGET_CONFIG) private config: ScreenWidgetConfig) {}\r\n\r\n loadScript(url: string, callback: string) {\r\n return new Promise<void>((resolve) => {\r\n (window as any)[callback] = () => {\r\n resolve();\r\n delete window[callback];\r\n };\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n if (this.config && this.config.baiduMap && this.config.baiduMap.ak) {\r\n this.ak = this.config.baiduMap.ak;\r\n }\r\n script.src = url + `&ak=${this.ak}&callback=${callback}`;\r\n document.body.appendChild(script);\r\n });\r\n }\r\n\r\n loadMap(): Promise<any> {\r\n if (typeof BMap !== 'undefined') {\r\n return Promise.resolve();\r\n }\r\n if (!this.loadMapPromise) {\r\n this.loadMapPromise = this.loadScript('https://api.map.baidu.com/api?v=3.0', 'loadBMapCallback');\r\n }\r\n return this.loadMapPromise;\r\n }\r\n\r\n loadMapGL(): Promise<any> {\r\n if (typeof BMapGL !== 'undefined') {\r\n return Promise.resolve();\r\n }\r\n if (!this.loadMapGLPromise) {\r\n this.loadMapGLPromise = this.loadScript(\r\n 'https://api.map.baidu.com/api?type=webgl&v=1.0',\r\n 'loadBMapGLCallback',\r\n ).then(() => {\r\n // 百度地图重写了contains方法,当参数为null时会报错,这里把它重写回来\r\n HTMLElement.prototype.contains = function (e) {\r\n if (e) {\r\n if (e == this) {\r\n return true;\r\n }\r\n while ((e = e.parentNode)) {\r\n if (e == this) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n });\r\n }\r\n return this.loadMapGLPromise;\r\n }\r\n\r\n // loadMarkerClusterer() {\r\n // if (!this.loadMarkerClustererPromise) {\r\n // this.loadMarkerClustererPromise = Promise.all([\r\n // this.lazy.loadScript('assets/js/BMap/MarkerClusterer_min.js'),\r\n // this.lazy.loadScript('assets/js/BMap/TextIconOverlay_min.js'),\r\n // ]);\r\n // }\r\n // return this.loadMarkerClustererPromise;\r\n // }\r\n\r\n // loadMarkerClustererGL() {\r\n // if (!this.loadMarkerClustererGLPromise) {\r\n // this.loadMarkerClustererGLPromise = Promise.all([\r\n // this.lazy.loadScript('assets/js/BMapGL/MarkerClusterer_min.js'),\r\n // this.lazy.loadScript('assets/js/BMapGL/TextIconOverlay_min.js'),\r\n // ]);\r\n // }\r\n // return this.loadMarkerClustererGLPromise;\r\n // }\r\n\r\n loadMapVGL() {\r\n if (!this.loadMapVGLPromise) {\r\n this.loadMapVGLPromise = this.lazy.loadScript('assets/js/BMapGL/mapvgl.min.js');\r\n this.loadMapVGLPromise.catch((e) => {\r\n console.error(e);\r\n this.loadMapGLPromise = null;\r\n });\r\n }\r\n return this.loadMapVGLPromise;\r\n }\r\n\r\n async localCity() {\r\n await this.loadMapGL();\r\n return new Promise<any>((resolve) => {\r\n const myCity = new BMapGL.LocalCity();\r\n myCity.get(resolve);\r\n });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["LazyService"],"mappings":"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"}
1
+ {"version":3,"file":"bbj-screen-widget-core.js","sources":["../../../projects/screen-widget/core/src/model/screen-widget.config.ts","../../../projects/screen-widget/core/src/service/baidu-map.service.ts","../../../projects/screen-widget/core/src/util/scale.util.ts","../../../projects/screen-widget/core/src/util/map.util.ts","../../../projects/screen-widget/core/src/bbj-screen-widget-core.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport interface ScreenWidgetConfig {\r\n baiduMap: { ak: string };\r\n}\r\n\r\nexport const SCREEN_WIDGET_CONFIG = new InjectionToken<ScreenWidgetConfig>('screen-widget.config');\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { LazyService } from '@delon/util';\r\nimport { SCREEN_WIDGET_CONFIG, ScreenWidgetConfig } from '../model/screen-widget.config';\r\n\r\ndeclare const BMap;\r\ndeclare const BMapGL;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BaiduMapService {\r\n private loadMapPromise: Promise<any>;\r\n private loadMapGLPromise: Promise<any>;\r\n private loadMarkerClustererPromise: Promise<any>;\r\n private loadMarkerClustererGLPromise: Promise<any>;\r\n private loadMapVGLPromise: Promise<any>;\r\n private ak = 'pLeoKEjQUcij1is3778ssPLrPfNg1Hjf';\r\n constructor(public lazy: LazyService, @Optional() @Inject(SCREEN_WIDGET_CONFIG) private config: ScreenWidgetConfig) {}\r\n\r\n loadScript(url: string, callback: string) {\r\n return new Promise<void>((resolve) => {\r\n (window as any)[callback] = () => {\r\n resolve();\r\n delete window[callback];\r\n };\r\n var script = document.createElement('script');\r\n script.type = 'text/javascript';\r\n if (this.config && this.config.baiduMap && this.config.baiduMap.ak) {\r\n this.ak = this.config.baiduMap.ak;\r\n }\r\n script.src = url + `&ak=${this.ak}&callback=${callback}`;\r\n document.body.appendChild(script);\r\n });\r\n }\r\n\r\n loadMap(): Promise<any> {\r\n if (typeof BMap !== 'undefined') {\r\n return Promise.resolve();\r\n }\r\n if (!this.loadMapPromise) {\r\n this.loadMapPromise = this.loadScript('https://api.map.baidu.com/api?v=3.0', 'loadBMapCallback');\r\n }\r\n return this.loadMapPromise;\r\n }\r\n\r\n loadMapGL(): Promise<any> {\r\n if (typeof BMapGL !== 'undefined') {\r\n return Promise.resolve();\r\n }\r\n if (!this.loadMapGLPromise) {\r\n this.loadMapGLPromise = this.loadScript(\r\n 'https://api.map.baidu.com/api?type=webgl&v=1.0',\r\n 'loadBMapGLCallback',\r\n ).then(() => {\r\n // 百度地图重写了contains方法,当参数为null时会报错,这里把它重写回来\r\n HTMLElement.prototype.contains = function (e) {\r\n if (e) {\r\n if (e == this) {\r\n return true;\r\n }\r\n while ((e = e.parentNode)) {\r\n if (e == this) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n });\r\n }\r\n return this.loadMapGLPromise;\r\n }\r\n\r\n // loadMarkerClusterer() {\r\n // if (!this.loadMarkerClustererPromise) {\r\n // this.loadMarkerClustererPromise = Promise.all([\r\n // this.lazy.loadScript('assets/js/BMap/MarkerClusterer_min.js'),\r\n // this.lazy.loadScript('assets/js/BMap/TextIconOverlay_min.js'),\r\n // ]);\r\n // }\r\n // return this.loadMarkerClustererPromise;\r\n // }\r\n\r\n // loadMarkerClustererGL() {\r\n // if (!this.loadMarkerClustererGLPromise) {\r\n // this.loadMarkerClustererGLPromise = Promise.all([\r\n // this.lazy.loadScript('assets/js/BMapGL/MarkerClusterer_min.js'),\r\n // this.lazy.loadScript('assets/js/BMapGL/TextIconOverlay_min.js'),\r\n // ]);\r\n // }\r\n // return this.loadMarkerClustererGLPromise;\r\n // }\r\n\r\n loadMapVGL() {\r\n if (!this.loadMapVGLPromise) {\r\n this.loadMapVGLPromise = this.lazy.loadScript('assets/js/BMapGL/mapvgl.min.js');\r\n this.loadMapVGLPromise.catch((e) => {\r\n console.error(e);\r\n this.loadMapGLPromise = null;\r\n });\r\n }\r\n return this.loadMapVGLPromise;\r\n }\r\n\r\n async localCity() {\r\n await this.loadMapGL();\r\n return new Promise<any>((resolve) => {\r\n const myCity = new BMapGL.LocalCity();\r\n myCity.get(resolve);\r\n });\r\n }\r\n}\r\n","import { NgZone } from '@angular/core';\r\nimport { ScaleSubject, WidgetRef } from 'bbj-widget-base';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\n\r\nexport function scaleAdapter(\r\n scale$: ScaleSubject,\r\n destroy$: Observable<void>,\r\n zone: NgZone,\r\n element: HTMLElement,\r\n widgetRef: WidgetRef,\r\n) {\r\n scale$.pipe(takeUntil(destroy$)).subscribe((scale) => {\r\n const { x: sx, y: sy, scaleContent } = scale as any;\r\n const style = element.style;\r\n if (scaleContent === false) {\r\n zone.onStable.pipe(take(1)).subscribe(() => {\r\n const parent = element.parentNode as HTMLElement;\r\n if (parent) {\r\n const match = /translate\\(([-\\d.]+)px, ([-\\d.]+)px\\)/.exec(parent.style.transform);\r\n if (match) {\r\n const offsetX = parseFloat(match[1]);\r\n const offsetY = parseFloat(match[2]);\r\n style.transform = `translate(${-offsetX}px,${-offsetY}px)`;\r\n style.height = parent.clientHeight + offsetY + 'px';\r\n style.width = parent.clientWidth + offsetX + 'px';\r\n style.padding = `${offsetY}px 0 0 ${offsetX}px`;\r\n }\r\n }\r\n });\r\n } else {\r\n const { position, size } = widgetRef.widget as any;\r\n const { x, y } = position;\r\n const { width, height } = size;\r\n style.transform = `translate(${-x}px,${-y}px) scale(${1 / sx},${1 / sy})`;\r\n style.height = (y + height) * sy + 'px';\r\n style.width = (x + width) * sx + 'px';\r\n style.padding = `${y * sy}px 0 0 ${x * sx}px`;\r\n }\r\n });\r\n}\r\n","//定义一些常量\r\nvar x_PI = (3.14159265358979324 * 3000.0) / 180.0;\r\nvar PI = 3.1415926535897932384626;\r\nvar a = 6378245.0;\r\nvar ee = 0.00669342162296594323;\r\n/**\r\n * 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换\r\n * 即 百度 转 谷歌、高德\r\n */\r\nexport function bd09togcj02(bd_lon, bd_lat) {\r\n var x_pi = (3.14159265358979324 * 3000.0) / 180.0;\r\n var x = bd_lon - 0.0065;\r\n var y = bd_lat - 0.006;\r\n var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);\r\n var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);\r\n var gg_lng = z * Math.cos(theta);\r\n var gg_lat = z * Math.sin(theta);\r\n return [gg_lng, gg_lat];\r\n}\r\n/**\r\n * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换\r\n * 即谷歌、高德 转 百度\r\n */\r\nexport function gcj02tobd09(lng, lat) {\r\n var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);\r\n var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);\r\n var bd_lng = z * Math.cos(theta) + 0.0065;\r\n var bd_lat = z * Math.sin(theta) + 0.006;\r\n return [bd_lng, bd_lat];\r\n}\r\n/**\r\n * WGS84转GCj02\r\n */\r\nexport function wgs84togcj02(lng, lat) {\r\n if (out_of_china(lng, lat)) {\r\n return [lng, lat];\r\n } else {\r\n var dlat = transformlat(lng - 105.0, lat - 35.0);\r\n var dlng = transformlng(lng - 105.0, lat - 35.0);\r\n var radlat = (lat / 180.0) * PI;\r\n var magic = Math.sin(radlat);\r\n magic = 1 - ee * magic * magic;\r\n var sqrtmagic = Math.sqrt(magic);\r\n dlat = (dlat * 180.0) / (((a * (1 - ee)) / (magic * sqrtmagic)) * PI);\r\n dlng = (dlng * 180.0) / ((a / sqrtmagic) * Math.cos(radlat) * PI);\r\n var mglat = lat + dlat;\r\n var mglng = lng + dlng;\r\n return [mglng, mglat];\r\n }\r\n}\r\n/**\r\n * GCJ02 转换为 WGS84\r\n */\r\nexport function gcj02towgs84(lng, lat) {\r\n if (out_of_china(lng, lat)) {\r\n return [lng, lat];\r\n } else {\r\n var dlat = transformlat(lng - 105.0, lat - 35.0);\r\n var dlng = transformlng(lng - 105.0, lat - 35.0);\r\n var radlat = (lat / 180.0) * PI;\r\n var magic = Math.sin(radlat);\r\n magic = 1 - ee * magic * magic;\r\n var sqrtmagic = Math.sqrt(magic);\r\n dlat = (dlat * 180.0) / (((a * (1 - ee)) / (magic * sqrtmagic)) * PI);\r\n dlng = (dlng * 180.0) / ((a / sqrtmagic) * Math.cos(radlat) * PI);\r\n var mglat = lat + dlat;\r\n var mglng = lng + dlng;\r\n return [lng * 2 - mglng, lat * 2 - mglat];\r\n }\r\n}\r\n/**\r\n * BD09 转换为 WGS84\r\n */\r\nexport function bd09towgs84(lng, lat) {\r\n var rel = bd09togcj02(lng, lat);\r\n return gcj02towgs84(rel[0], rel[1]);\r\n}\r\nexport function wgs84tobd09(lng, lat) {\r\n var rel = wgs84togcj02(lng, lat);\r\n return gcj02tobd09(rel[0], rel[1]);\r\n}\r\nfunction transformlat(lng, lat) {\r\n var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));\r\n ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0;\r\n ret += ((20.0 * Math.sin(lat * PI) + 40.0 * Math.sin((lat / 3.0) * PI)) * 2.0) / 3.0;\r\n ret += ((160.0 * Math.sin((lat / 12.0) * PI) + 320 * Math.sin((lat * PI) / 30.0)) * 2.0) / 3.0;\r\n return ret;\r\n}\r\nfunction transformlng(lng, lat) {\r\n var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));\r\n ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0;\r\n ret += ((20.0 * Math.sin(lng * PI) + 40.0 * Math.sin((lng / 3.0) * PI)) * 2.0) / 3.0;\r\n ret += ((150.0 * Math.sin((lng / 12.0) * PI) + 300.0 * Math.sin((lng / 30.0) * PI)) * 2.0) / 3.0;\r\n return ret;\r\n}\r\n/**\r\n * 判断是否在国内,不在国内则不做偏移\r\n */\r\nfunction out_of_china(lng, lat) {\r\n return lng < 72.004 || lng > 137.8347 || lat < 0.8293 || lat > 55.8271 || false;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["LazyService"],"mappings":"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"}