bbj-screen-widget 2.4.75 → 2.4.77
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.
- package/bbj-screen-widget.metadata.json +1 -1
- package/bundles/bbj-screen-widget-core.umd.js +20 -0
- package/bundles/bbj-screen-widget-core.umd.js.map +1 -1
- package/bundles/bbj-screen-widget-core.umd.min.js +1 -1
- package/bundles/bbj-screen-widget-core.umd.min.js.map +1 -1
- package/bundles/bbj-screen-widget.umd.js +270 -121
- package/bundles/bbj-screen-widget.umd.js.map +1 -1
- package/bundles/bbj-screen-widget.umd.min.js +1 -1
- package/bundles/bbj-screen-widget.umd.min.js.map +1 -1
- package/core/bbj-screen-widget-core.metadata.json +1 -1
- package/core/util/map.util.d.ts +10 -0
- package/esm2015/core/util/map.util.js +20 -1
- package/esm2015/lib/custom-baidu-map/baidu-fence/baidu-fence.component.js +164 -63
- package/fesm2015/bbj-screen-widget-core.js +20 -1
- package/fesm2015/bbj-screen-widget-core.js.map +1 -1
- package/fesm2015/bbj-screen-widget.js +164 -63
- package/fesm2015/bbj-screen-widget.js.map +1 -1
- package/lib/custom-baidu-map/baidu-fence/baidu-fence.component.d.ts +7 -0
- package/package.json +1 -1
|
@@ -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,10 +15293,13 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
|
|
|
15292
15293
|
}
|
|
15293
15294
|
updateData() {
|
|
15294
15295
|
const data = [];
|
|
15295
|
-
this.data
|
|
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
|
+
continue;
|
|
15299
15303
|
}
|
|
15300
15304
|
let pointsCount = 90;
|
|
15301
15305
|
const radius = r.radius;
|
|
@@ -15305,7 +15309,7 @@ let BaiduFenceComponent = class BaiduFenceComponent extends BaseLayer {
|
|
|
15305
15309
|
// 转换中心点纬度为弧度
|
|
15306
15310
|
const centerLatRad = (centerLat * Math.PI) / 180;
|
|
15307
15311
|
// 存储轨迹点的数组
|
|
15308
|
-
const
|
|
15312
|
+
const coordinates = [];
|
|
15309
15313
|
// 遍历 0~360°,生成等间隔的点
|
|
15310
15314
|
for (let i = 0; i < pointsCount; i++) {
|
|
15311
15315
|
// 计算当前点的方位角(弧度):从0°到360°,均分pointsCount份
|
|
@@ -15317,18 +15321,18 @@ 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
|
-
|
|
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: [
|
|
15329
|
+
coordinates: [coordinates],
|
|
15326
15330
|
},
|
|
15327
15331
|
});
|
|
15328
15332
|
}
|
|
15329
15333
|
else {
|
|
15330
15334
|
if (!r.lnglat) {
|
|
15331
|
-
|
|
15335
|
+
continue;
|
|
15332
15336
|
}
|
|
15333
15337
|
// const coordinates = r.lnglat.split(';').map((r) => {
|
|
15334
15338
|
// const lnglat = r.split(',');
|
|
@@ -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
|
-
|
|
15356
|
+
createScene() {
|
|
15352
15357
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15353
|
-
const { DrawScene,
|
|
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
|
-
|
|
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
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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)=\"
|
|
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$
|
|
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$
|
|
20722
|
+
id: ɵ1$d,
|
|
20622
20723
|
address: { type: 'string', title: '地点' },
|
|
20623
20724
|
lng: { type: 'number', title: '经度' },
|
|
20624
20725
|
lat: { type: 'number', title: '纬度' },
|