bbj-screen-widget 2.4.75 → 2.4.76

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.
@@ -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/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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"}
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\r\n/**\r\n * 墨卡托平面坐标转换为经纬度\r\n * @param mcLon\r\n * @param mcLat\r\n * @returns\r\n */\r\nexport function bd09mcToBd09ll(mcLon: number, mcLat: number) {\r\n const x = mcLon;\r\n const y = mcLat;\r\n const bd09ll: { lng?: number; lat?: number } = {};\r\n\r\n // 墨卡托反投影\r\n const x_pi = (Math.PI * 3000.0) / 180.0;\r\n bd09ll.lng = x / 20037508.34 / 180;\r\n let yVal = y / 20037508.34 / 180;\r\n yVal = Math.exp(yVal * Math.PI);\r\n yVal = ((Math.PI / 2 - 2 * Math.atan(yVal)) * 180) / Math.PI;\r\n bd09ll.lat = yVal;\r\n\r\n return bd09ll;\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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"}
@@ -15221,7 +15221,7 @@ TyphoonAreaLayerComponent = __decorate([
15221
15221
  ], TyphoonAreaLayerComponent);
15222
15222
 
15223
15223
  const EARTH_RADIUS$1 = 6371393;
15224
- const ɵ0$c = { type: 'string', title: 'ID' };
15224
+ const ɵ0$c = { type: 'string', title: 'ID' }, ɵ1$c = { type: 'string', title: 'ID' };
15225
15225
  let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15226
15226
  constructor(parent, zone, message) {
15227
15227
  super(parent, zone);
@@ -15257,6 +15257,7 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15257
15257
  },
15258
15258
  ];
15259
15259
  this.create = new EventEmitter();
15260
+ this.update = new EventEmitter();
15260
15261
  this.editData = [];
15261
15262
  this.stopEdit$ = new Subject();
15262
15263
  }
@@ -15292,7 +15293,10 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15292
15293
  }
15293
15294
  updateData() {
15294
15295
  const data = [];
15295
- this.data.forEach((r) => {
15296
+ for (const r of this.data) {
15297
+ if (r.id && r.id === this.editId) {
15298
+ continue;
15299
+ }
15296
15300
  if (r.type === 'circle') {
15297
15301
  if (!r.radius || !r.lnglat) {
15298
15302
  return;
@@ -15305,7 +15309,7 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15305
15309
  // 转换中心点纬度为弧度
15306
15310
  const centerLatRad = (centerLat * Math.PI) / 180;
15307
15311
  // 存储轨迹点的数组
15308
- const trajectory = [];
15312
+ const coordinates = [];
15309
15313
  // 遍历 0~360°,生成等间隔的点
15310
15314
  for (let i = 0; i < pointsCount; i++) {
15311
15315
  // 计算当前点的方位角(弧度):从0°到360°,均分pointsCount份
@@ -15317,12 +15321,12 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15317
15321
  const newLat = centerLat + (deltaLatRad * 180) / Math.PI;
15318
15322
  const newLng = centerLng + (deltaLngRad * 180) / Math.PI;
15319
15323
  // 添加到轨迹数组(保留6位小数,经纬度常规精度)
15320
- trajectory.push([parseFloat(newLng.toFixed(6)), parseFloat(newLat.toFixed(6))]);
15324
+ coordinates.push([parseFloat(newLng.toFixed(6)), parseFloat(newLat.toFixed(6))]);
15321
15325
  }
15322
15326
  data.push({
15323
15327
  geometry: {
15324
15328
  type: 'Polygon',
15325
- coordinates: [trajectory],
15329
+ coordinates: [coordinates],
15326
15330
  },
15327
15331
  });
15328
15332
  }
@@ -15339,26 +15343,28 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15339
15343
  return [+lnglat[0], +lnglat[1]];
15340
15344
  }));
15341
15345
  data.push({
15346
+ id: r.id,
15342
15347
  geometry: {
15343
15348
  type: 'Polygon',
15344
15349
  coordinates: coordinates,
15345
15350
  },
15346
15351
  });
15347
15352
  }
15348
- });
15353
+ }
15349
15354
  this.layer.setData(data);
15350
15355
  }
15351
- startDraw(type) {
15356
+ createScene() {
15352
15357
  return __awaiter(this, void 0, void 0, function* () {
15353
- const { DrawScene, PolygonDraw, CircleDraw, OperateEventType } = yield import('bmap-draw');
15358
+ const { DrawScene, OperateEventType } = yield import('bmap-draw');
15354
15359
  if (!this.scene) {
15355
15360
  this.scene = new DrawScene(this.parent.map, { noLimit: true });
15356
15361
  this.scene.addEventListener(OperateEventType.COMPLETE, (e) => {
15357
15362
  console.log(e);
15363
+ let data;
15358
15364
  if (e.target.overlay.radius) {
15359
15365
  const radius = e.target.overlay.radius;
15360
15366
  const lnglat = e.target.overlay.latLng;
15361
- const data = {
15367
+ data = {
15362
15368
  type: 'circle',
15363
15369
  lnglat: `${lnglat.lng},${lnglat.lat}`,
15364
15370
  radius: radius,
@@ -15367,14 +15373,12 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15367
15373
  // this.parent.map.removeOverlay(r);
15368
15374
  // });
15369
15375
  this.create.emit(data);
15370
- this.editOverlay = null;
15371
15376
  }
15372
15377
  else {
15373
15378
  const points = e.target.overlay.getPoints();
15374
15379
  if (!this.data) {
15375
15380
  this.data = [];
15376
15381
  }
15377
- let data;
15378
15382
  if (points.length && Array.isArray(points[0])) {
15379
15383
  data = {
15380
15384
  type: 'polygon',
@@ -15384,20 +15388,55 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15384
15388
  else {
15385
15389
  data = {
15386
15390
  type: 'polygon',
15387
- lnglat: points.map((p) => `${p.latLng.lng},${p.latLng.lat}`).join(';'),
15391
+ lnglat: points
15392
+ .map((p) => {
15393
+ let latLng = p.latLng;
15394
+ if (!latLng) {
15395
+ const [lng, lat] = this.parent.map.mercatorToLnglat(p.lng, p.lat);
15396
+ return `${lng},${lat}`;
15397
+ }
15398
+ else {
15399
+ return `${latLng.lng},${latLng.lat}`;
15400
+ }
15401
+ })
15402
+ .join(';'),
15388
15403
  };
15389
15404
  }
15405
+ }
15406
+ this.editOverlay = null;
15407
+ this.parent.map.removeOverlay(e.target.overlay);
15408
+ if (this.editId) {
15409
+ data.id = this.editId;
15410
+ const index = this.data.findIndex((r) => r.id === this.editId);
15411
+ if (index !== -1) {
15412
+ this.data[index] = data;
15413
+ }
15414
+ this.editId = null;
15415
+ this.updateData();
15416
+ }
15417
+ else {
15418
+ this.data.push(data);
15419
+ this.updateData();
15390
15420
  this.create.emit(data);
15391
15421
  }
15392
15422
  });
15393
15423
  this.scene.addEventListener(OperateEventType.CANCEL, (e) => {
15394
- console.log(e);
15395
15424
  if (this.editOverlay) {
15396
15425
  this.parent.map.removeOverlay(this.editOverlay);
15397
15426
  this.editOverlay = null;
15398
15427
  }
15428
+ if (this.editId) {
15429
+ this.editId = null;
15430
+ this.updateData();
15431
+ }
15399
15432
  });
15400
15433
  }
15434
+ });
15435
+ }
15436
+ startDraw(type) {
15437
+ return __awaiter(this, void 0, void 0, function* () {
15438
+ this.createScene();
15439
+ const { PolygonDraw, CircleDraw } = yield import('bmap-draw');
15401
15440
  switch (type) {
15402
15441
  case 'polygon':
15403
15442
  if (!this.polygon) {
@@ -15490,10 +15529,42 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15490
15529
  // }
15491
15530
  // this.editData = null;
15492
15531
  }
15532
+ editPolygon(boundaries) {
15533
+ return __awaiter(this, void 0, void 0, function* () {
15534
+ const { PolygonEdit } = yield import('bmap-draw');
15535
+ this.stopDraw();
15536
+ if (!this.polygonEdit) {
15537
+ this.polygonEdit = new PolygonEdit(this.scene);
15538
+ }
15539
+ const points = boundaries.map((boundary) => boundary.split(';').map((p) => {
15540
+ const [lng, lat] = p.split(',');
15541
+ return new BMapGL.Point(Number(lng), Number(lat));
15542
+ }));
15543
+ const overlay = new BMapGL.Polygon(points, this.getOptions());
15544
+ console.log(overlay);
15545
+ this.editOverlay = overlay;
15546
+ this.parent.map.addOverlay(overlay);
15547
+ this.parent.map.setViewport([].concat.apply([], points));
15548
+ this.polygonEdit.edit(overlay);
15549
+ });
15550
+ }
15551
+ editCircle(lng, lat, r) {
15552
+ return __awaiter(this, void 0, void 0, function* () {
15553
+ const { CircleEdit } = yield import('bmap-draw');
15554
+ if (!this.circleEdit) {
15555
+ this.circleEdit = new CircleEdit(this.scene);
15556
+ }
15557
+ const center = new BMapGL.Point(lng, lat);
15558
+ this.moveCircleToView(lng, lat, r);
15559
+ const overlay = new BMapGL.Circle(center, r, this.getOptions());
15560
+ this.editOverlay = overlay;
15561
+ this.parent.map.addOverlay(overlay);
15562
+ this.circleEdit.open(overlay);
15563
+ });
15564
+ }
15493
15565
  search() {
15494
15566
  return __awaiter(this, void 0, void 0, function* () {
15495
15567
  // 如果正在绘制多边形围栏,获取地名边界并绘制
15496
- const { PolygonEdit } = yield import('bmap-draw');
15497
15568
  if (this.areaName) {
15498
15569
  const boundary = new BMapGL.Boundary();
15499
15570
  // 百度地图 Geocoder.getLocation 回调签名:(results, status)
@@ -15501,20 +15572,7 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15501
15572
  console.log('边界坐标数组:', results);
15502
15573
  // 检查状态是否成功
15503
15574
  if (results && results.boundaries && results.boundaries.length) {
15504
- this.stopDraw();
15505
- if (!this.polygonEdit) {
15506
- this.polygonEdit = new PolygonEdit(this.scene);
15507
- }
15508
- const points = results.boundaries.map((boundary) => boundary.split(';').map((p) => {
15509
- const [lng, lat] = p.split(',');
15510
- return new BMapGL.Point(Number(lng), Number(lat));
15511
- }));
15512
- const overlay = new BMapGL.Polygon(points, this.getOptions());
15513
- console.log(overlay);
15514
- this.editOverlay = overlay;
15515
- this.parent.map.addOverlay(overlay);
15516
- this.parent.map.setViewport([].concat.apply([], points));
15517
- this.polygonEdit.edit(overlay);
15575
+ this.editPolygon(results.boundaries);
15518
15576
  }
15519
15577
  else {
15520
15578
  this.message.error('行政区域不存在');
@@ -15536,15 +15594,7 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15536
15594
  console.log(e);
15537
15595
  // 如果正在绘制圆形围栏
15538
15596
  if (this.circle) {
15539
- if (!this.circleEdit) {
15540
- this.circleEdit = new CircleEdit(this.scene);
15541
- }
15542
- const center = new BMapGL.Point(value.location.lng, value.location.lat);
15543
- this.parent.map.centerAndZoom(center, 16);
15544
- const overlay = new BMapGL.Circle(center, 300, this.getOptions());
15545
- this.editOverlay = overlay;
15546
- this.parent.map.addOverlay(overlay);
15547
- this.circleEdit.open(overlay);
15597
+ this.editCircle(value.location.lng, value.location.lat, 300);
15548
15598
  this.searchText = null;
15549
15599
  }
15550
15600
  });
@@ -15560,27 +15610,7 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15560
15610
  }
15561
15611
  if (data.type === 'circle') {
15562
15612
  const [lng, lat] = data.lnglat.split(',');
15563
- const centerLng = Number(lng);
15564
- const centerLat = Number(lat);
15565
- const radius = Number(data.radius);
15566
- // 转换中心点纬度为弧度
15567
- const centerLatRad = (centerLat * Math.PI) / 180;
15568
- // 计算经度方向的偏移(弧度)
15569
- const deltaLngRad = radius / (EARTH_RADIUS$1 * Math.cos(centerLatRad));
15570
- // 计算纬度方向的偏移(弧度)
15571
- const deltaLatRad = radius / EARTH_RADIUS$1;
15572
- // 转换为角度偏移
15573
- const deltaLng = (deltaLngRad * 180) / Math.PI;
15574
- const deltaLat = (deltaLatRad * 180) / Math.PI;
15575
- // 计算圆形的四个边界点(上、下、左、右)
15576
- const points = [
15577
- new BMapGL.Point(centerLng, centerLat + deltaLat),
15578
- new BMapGL.Point(centerLng, centerLat - deltaLat),
15579
- new BMapGL.Point(centerLng - deltaLng, centerLat),
15580
- new BMapGL.Point(centerLng + deltaLng, centerLat),
15581
- ];
15582
- // 使用 setViewport 方法调整视图,使整个圆形可见
15583
- this.parent.map.setViewport(points);
15613
+ this.moveCircleToView(Number(lng), Number(lat), Number(data.radius));
15584
15614
  }
15585
15615
  else {
15586
15616
  this.parent.map.setViewport(data.lnglat.split(/[;\n\r]+/).map((p) => {
@@ -15589,11 +15619,62 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
15589
15619
  }));
15590
15620
  }
15591
15621
  }
15622
+ moveCircleToView(lng, lat, r) {
15623
+ const centerLng = Number(lng);
15624
+ const centerLat = Number(lat);
15625
+ const radius = Number(r);
15626
+ // 转换中心点纬度为弧度
15627
+ const centerLatRad = (centerLat * Math.PI) / 180;
15628
+ // 计算经度方向的偏移(弧度)
15629
+ const deltaLngRad = radius / (EARTH_RADIUS$1 * Math.cos(centerLatRad));
15630
+ // 计算纬度方向的偏移(弧度)
15631
+ const deltaLatRad = radius / EARTH_RADIUS$1;
15632
+ // 转换为角度偏移
15633
+ const deltaLng = (deltaLngRad * 180) / Math.PI;
15634
+ const deltaLat = (deltaLatRad * 180) / Math.PI;
15635
+ // 计算圆形的四个边界点(上、下、左、右)
15636
+ const points = [
15637
+ new BMapGL.Point(centerLng, centerLat + deltaLat),
15638
+ new BMapGL.Point(centerLng, centerLat - deltaLat),
15639
+ new BMapGL.Point(centerLng - deltaLng, centerLat),
15640
+ new BMapGL.Point(centerLng + deltaLng, centerLat),
15641
+ ];
15642
+ // 使用 setViewport 方法调整视图,使整个圆形可见
15643
+ this.parent.map.setViewport(points);
15644
+ }
15645
+ edit(id) {
15646
+ return __awaiter(this, void 0, void 0, function* () {
15647
+ if (!this.data) {
15648
+ console.log('没有数据');
15649
+ return;
15650
+ }
15651
+ const item = this.data.find((item) => item.id === id);
15652
+ if (!item) {
15653
+ console.log('找不到id', id);
15654
+ return;
15655
+ }
15656
+ if (!item.lnglat) {
15657
+ console.log('没有经纬度', item);
15658
+ return;
15659
+ }
15660
+ this.createScene();
15661
+ switch (item.type) {
15662
+ case 'circle':
15663
+ const [lng, lat] = item.lnglat.split(',');
15664
+ yield this.editCircle(Number(lng), Number(lat), Number(item.radius));
15665
+ break;
15666
+ default:
15667
+ yield this.editPolygon(item.lnglat.split('\r'));
15668
+ }
15669
+ this.editId = id;
15670
+ this.updateData();
15671
+ });
15672
+ }
15592
15673
  };
15593
15674
  BaiduFenceComponent.decorators = [
15594
15675
  { type: Component, args: [{
15595
15676
  selector: 'sc-baidu-fence',
15596
- template: "<ng-container *ngIf=\"showDrawButton\">\n <button nz-button (click)=\"startDraw('polygon')\">\u7ED8\u5236\u591A\u8FB9\u5F62</button>\n <button nz-button (click)=\"startDraw('circle')\">\u7ED8\u5236\u5706\u5F62</button>\n <button nz-button (click)=\"stopDraw()\">\u7ED3\u675F\u7ED8\u5236</button>\n <button nz-button (click)=\"moveToView('1')\">\u79FB\u52A8\u5230\u4E2D\u5FC31</button>\n <button nz-button (click)=\"moveToView('2')\">\u79FB\u52A8\u5230\u4E2D\u5FC32</button>\n</ng-container>\n<input\n nz-input\n [ngClass]=\"{ hidden: !circle?.isOpen }\"\n #suggest\n type=\"text\"\n [(ngModel)]=\"searchText\"\n placeholder=\"\u8BF7\u8F93\u5165\u4E2D\u5FC3\u70B9\u4F4D\u7F6E\"\n class=\"input\"\n/>\n<ng-container *ngIf=\"polygon?.isOpen\">\n <input nz-input type=\"text\" placeholder=\"\u8BF7\u8F93\u5165\u884C\u653F\u533A\u540D\u79F0\" [(ngModel)]=\"areaName\" class=\"input\" />\n <button nz-button (click)=\"search()\" style=\"margin-left: 12px\">\u786E\u8BA4</button>\n</ng-container>\n<!-- <input type=\"text\" placeholder=\"\u8BF7\u8F93\u5165\u5730\u70B9\" [(ngModel)]=\"searchText\" />\n<button nz-button (click)=\"search()\">\u67E5\u8BE2</button> -->\n",
15677
+ template: "<ng-container *ngIf=\"showDrawButton\">\n <button nz-button (click)=\"startDraw('polygon')\">\u7ED8\u5236\u591A\u8FB9\u5F62</button>\n <button nz-button (click)=\"startDraw('circle')\">\u7ED8\u5236\u5706\u5F62</button>\n <button nz-button (click)=\"stopDraw()\">\u7ED3\u675F\u7ED8\u5236</button>\n <!-- <button nz-button (click)=\"edit('1')\">\u7F16\u8F91</button>\n <button nz-button (click)=\"edit('2')\">\u7F16\u8F912</button> -->\n</ng-container>\n<input\n nz-input\n [ngClass]=\"{ hidden: !circle?.isOpen }\"\n #suggest\n type=\"text\"\n [(ngModel)]=\"searchText\"\n placeholder=\"\u8BF7\u8F93\u5165\u4E2D\u5FC3\u70B9\u4F4D\u7F6E\"\n class=\"input\"\n/>\n<ng-container *ngIf=\"polygon?.isOpen\">\n <input nz-input type=\"text\" placeholder=\"\u8BF7\u8F93\u5165\u884C\u653F\u533A\u540D\u79F0\" [(ngModel)]=\"areaName\" class=\"input\" />\n <button nz-button (click)=\"search()\" style=\"margin-left: 12px\">\u786E\u8BA4</button>\n</ng-container>\n<!-- <input type=\"text\" placeholder=\"\u8BF7\u8F93\u5165\u5730\u70B9\" [(ngModel)]=\"searchText\" />\n<button nz-button (click)=\"search()\">\u67E5\u8BE2</button> -->\n",
15597
15678
  styles: [":host{position:absolute;display:block;left:0;top:0;z-index:100;padding:12px;pointer-events:auto}button{transition:none}.hidden{display:none}.input{width:300px;margin-left:12px}"]
15598
15679
  },] }
15599
15680
  ];
@@ -15657,6 +15738,19 @@ __decorate([
15657
15738
  }),
15658
15739
  __metadata("design:type", Object)
15659
15740
  ], BaiduFenceComponent.prototype, "create", void 0);
15741
+ __decorate([
15742
+ Event('编辑围栏', {
15743
+ params: {
15744
+ properties: {
15745
+ id: ɵ1$c,
15746
+ type: { type: 'string', title: '围栏类型' },
15747
+ lnglat: { type: 'string', title: '经纬度' },
15748
+ radius: { type: 'number', title: '半径' },
15749
+ },
15750
+ },
15751
+ }),
15752
+ __metadata("design:type", Object)
15753
+ ], BaiduFenceComponent.prototype, "update", void 0);
15660
15754
  __decorate([
15661
15755
  Method('开始绘制'),
15662
15756
  __param(0, Param('类型', {
@@ -15683,6 +15777,13 @@ __decorate([
15683
15777
  __metadata("design:paramtypes", [String]),
15684
15778
  __metadata("design:returntype", void 0)
15685
15779
  ], BaiduFenceComponent.prototype, "moveToView", null);
15780
+ __decorate([
15781
+ Method('编辑'),
15782
+ __param(0, Param('id')),
15783
+ __metadata("design:type", Function),
15784
+ __metadata("design:paramtypes", [String]),
15785
+ __metadata("design:returntype", Promise)
15786
+ ], BaiduFenceComponent.prototype, "edit", null);
15686
15787
  BaiduFenceComponent = __decorate([
15687
15788
  Widget('电子围栏', {
15688
15789
  group: 'component',
@@ -19999,7 +20100,7 @@ BaseLayer$1.ctorParameters = () => [
19999
20100
  { type: NgZone }
20000
20101
  ];
20001
20102
 
20002
- const ɵ0$e = { type: 'string', title: 'id' }, ɵ1$c = { type: 'string', title: 'id' }, ɵ2$a = { type: 'string', title: 'id' };
20103
+ const ɵ0$e = { type: 'string', title: 'id' }, ɵ1$d = { type: 'string', title: 'id' }, ɵ2$a = { type: 'string', title: 'id' };
20003
20104
  let TiandituMarkerComponent = class TiandituMarkerComponent extends BaseLayer$1 {
20004
20105
  constructor(parent, zone, fileUrlService, nzContextMenuService) {
20005
20106
  super(parent, zone);
@@ -20618,7 +20719,7 @@ __decorate([
20618
20719
  Event('选中值改变', {
20619
20720
  params: {
20620
20721
  properties: {
20621
- id: ɵ1$c,
20722
+ id: ɵ1$d,
20622
20723
  address: { type: 'string', title: '地点' },
20623
20724
  lng: { type: 'number', title: '经度' },
20624
20725
  lat: { type: 'number', title: '纬度' },