From 6f475ec20efbbb91d5d3d012284eeaa5b0a0bab0 Mon Sep 17 00:00:00 2001
From: sbjw <sbjw.happy@163.com>
Date: Fri, 27 Mar 2026 05:55:15 +0000
Subject: [PATCH] 使用50版本
---
src/example/ExampleDrawDyPage.js | 162 +++
src/example/ExamplePage.js | 22
public/example/ExampleXzxxPage.md | 34
public/example/ExampleFlyPage.md | 3
src/example/ExampleDrawPage.js | 97 +
src/example/ExampleFlyPage.js | 3
public/example/ExampleDrawDy2Page.md | 619 +++++++++++++++
src/example/ExampleXzxxPage.js | 34
src/example/ExampleDrawDy2Page.js | 613 +++++++++++++++
package.json | 2
src/App.js | 4
public/example/ExampleDrawDyPage.md | 614 +++++++++++++++
public/example/ExampleDrawPage.md | 97 +
13 files changed, 2,220 insertions(+), 84 deletions(-)
diff --git a/package.json b/package.json
index 3178b95..b073de0 100644
--- a/package.json
+++ b/package.json
@@ -20,7 +20,7 @@
"@turf/turf": "^7.2.0",
"antd": "^4.24.16",
"echarts": "^5.6.0",
- "iclient3d-plot-diy": "^1.0.49",
+ "iclient3d-plot-diy": "^1.0.50",
"iclient3d-plot-diy-attachment": "^1.0.2",
"jquery": "^3.7.1",
"react-draggable": "^3.3.2",
diff --git a/public/example/ExampleDrawDy2Page.md b/public/example/ExampleDrawDy2Page.md
new file mode 100644
index 0000000..bbf37c5
--- /dev/null
+++ b/public/example/ExampleDrawDy2Page.md
@@ -0,0 +1,619 @@
+
+### ExampleDrawDy2Page 代码
+
+```jsx
+import React, {Component} from 'react'
+import './ExampleDrawPage.css'
+import {GIS} from "iclient3d-plot-diy";
+import {Button, Input} from "antd";
+import {timer} from "rxjs";
+
+
+export default class ExampleDrawDy2Page extends Component {
+
+
+ optionObjs = {
+ "目标简标": {
+ allowPicking: false,
+ code: '123123',
+ bz: true,
+ bzColor: '#e000ff',
+ bzLineColor: '#ff0000',
+ bzlx: 'simple',
+ jbwb: 'R:00017',
+ type: "2002",
+ returnHeight: true,
+ useModify: false,
+ lon: 102.73054539488224, lat: 31.005468100060593, height: 0,
+ points: [],
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "目标醒目": {
+ allowPicking: false,
+ bz: true,
+ bzColor: '#0000FF',
+ bzLineColor: '#000000',
+ bzlx: 'simple',
+ jbwb: 'R:00017',
+ xz: true,
+ xzColor: '#00ff00',
+ xx: true,
+ xxColor: '#ff0000',
+ type: "2002",
+ iconColor: '#dddddd',
+ returnHeight: true,
+ useModify: false,
+ lon: 102.73554539488224, lat: 31.005068100060593, height: 0,
+ points: []
+ },
+ "目标详标": {
+ allowPicking: false,
+ bz: true,
+ bzlx: 'detail',
+ jbwb: 'R:00017',
+ xbwb: "17/10/2019\n16:45:8\n9260.00-10400.00MHZ",
+ type: "2002",
+ useModify: false,
+ lon: 102.70054539488224, lat: 31.000468100060593, height: 0,
+ points: [],
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "飞行简标": {
+ allowPicking: false,
+ bz: true,
+ bzlx: 'simple',
+ jbwb: "P:00019",
+ type: "2010",
+ useModify: false,
+ lon: 102.76054539488224, lat: 31.000468100060593, height: 0,
+ points: [{lon: 102.76554539488224, lat: 31.000468100060593, height: 0}, {
+ lon: 102.76904539488224,
+ lat: 30.992468100060593,
+ height: 0
+ }],
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "飞行详标": {
+ allowPicking: false,
+ bz: true,
+ bzlx: 'detail',
+ jbwb: 'P:00019',
+ xbwb: "F16-1\n美国\n16:45:56\nR:00019\nC:00019",
+ type: "2010",
+ useModify: false,
+ lon: 102.73054539488224, lat: 31.001068100060593, height: 0,
+ points: [
+ {lon: 102.73554539488224, lat: 31.001068100060593, height: 0},
+ {lon: 102.73904539488224, lat: 30.992468100060593, height: 0}
+ ],
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "雷达对抗侦察区域": {
+ allowPicking: false,
+ type: "lddkzcqy",
+ bj: 1,
+ qsjd: 30,
+ zzjd: 75,
+ lon: 102.72004539488224, lat: 31.001068100060593, height: 0,
+ useModify: false,
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "雷达对抗干扰波束": {
+ allowPicking: false,
+ type: 'lddkgrps',
+ bj: 1,
+ qsjd: 30,
+ zzjd: 75,
+ lon: 102.72004539488224, lat: 30.991068100060593, height: 0,
+ useModify: false,
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "雷达对抗测向线": {
+ allowPicking: false,
+ type: "lddkcxx",
+ kcwb: "10110",
+ kcgls: 1,
+ kcjd: 30,
+ useModify: false,
+ lon: 102.76054539488224, lat: 31.011068100060593, height: 0,
+ points: []
+ },
+ "雷达对抗关系": {
+ allowPicking: false,
+ type: "lddkgx",
+ kcwb: "10110",
+ kcgls: 1,
+ kcjd: 30,
+ useModify: false,
+ lon: 102.78054539488224,
+ lat: 31.015068100060593,
+ height: 0,
+ points: []
+ },
+ "雷达对目标探测": {
+ allowPicking: false,
+ type: "lddmbtc",
+ bj: 0.5,
+ qsjd: 0,
+ zzjd: 360,
+ lon: 102.71004539488224, lat: 30.990068100060593, height: 0,
+ useModify: false,
+ },
+ "通信对抗侦察区域": {
+ allowPicking: false,
+ type: "txdkzcqy",
+ bj: 0.5,
+ qsjd: 0,
+ zzjd: 360,
+ lon: 102.69804539488224, lat: 30.990068100060593, height: 0,
+ useModify: false,
+ },
+ "通信对抗干扰波束": {
+ allowPicking: false,
+ type: "txdkgrps",
+ bj: 1,
+ qsjd: 30,
+ zzjd: 75,
+ lon: 102.76004539488224, lat: 30.991068100060593, height: 0,
+ useModify: false,
+ },
+ "通信对抗测向线": {
+ allowPicking: false,
+ type: "txdkcxx",
+ kcgls: 1,
+ kcjd: 30,
+ kcwb: "10110",
+ useModify: false,
+ lon: 102.76854539488224, lat: 31.009068100060593, height: 0,
+ points: []
+ },
+ "通信畅通区域": {
+ allowPicking: false,
+ type: 'txctqy',
+ bj: 0.5,
+ qsjd: 0,
+ zzjd: 360,
+ lon: 102.71504539488224, lat: 30.980068100060593, height: 0,
+ useModify: false,
+ },
+ "通信网标绘": {
+ type: "txw",
+ allowPicking: false,
+ useModify: false,
+ lon: 102.70854539488224, lat: 31.0098468100060593, height: 0,
+ points: []
+ },
+ "光电对抗侦察区域": {
+ type: 'gddkzcqy',
+ allowPicking: false,
+ bj: 0.5,
+ qsjd: 0,
+ zzjd: 360,
+ lon: 102.69054539488224, lat: 31.0098468100060593, height: 0,
+ useModify: false,
+ },
+ "光电有源对抗干扰波束": {
+ allowPicking: false,
+ type: 'gdyydkgrbs',
+ kcgls: 1,
+ kcjd: 30,
+ lon: 102.67054539488224, lat: 31.0098468100060593, height: 0,
+ useModify: false,
+ },
+ "漫反射干扰区域": {
+ allowPicking: false,
+ type: 'mfsgrqy',
+ bj: 1,
+ qsjd: 30,
+ zzjd: 75,
+ lon: 102.67054539488224, lat: 31.0028468100060593, height: 0,
+ useModify: false,
+ },
+ '烟幕形成区域': {
+ allowPicking: false,
+ type: 'ymxcqy',
+ points: [{lon: 102.64984, lat: 30.99237, height: 0},
+ {lon: 102.66012682459443, lat: 30.995109020954718, height: 0},
+ {lon: 102.67126799815856, lat: 30.98766239848537, height: 0},
+ {lon: 102.64984, lat: 30.983747593478107, height: 0},
+ {lon: 102.64984, lat: 30.99237, height: 0}],
+ useModify: false,
+ },
+ "掩护区域": {
+ allowPicking: false,
+ type: 'yhqy',
+ points: [{lon: 102.642853926199, lat: 31.012509646376447, height: 0},
+ {lon: 102.65927322610115, lat: 31.01540811637356, height: 0},
+ {lon: 102.66192135373299, lat: 31.005988487769518, height: 0},
+ {lon: 102.64755620178961, lat: 31.00246196283815, height: 0},
+ {lon: 102.642853926199, lat: 31.012509646376447, height: 0}],
+ useModify: false,
+ },
+ "协同关系": {
+ allowPicking: false,
+ type: 'xtgx',
+ points: [{lon: 102.642853926199, lat: 31.012509646376447, height: 0},
+ {lon: 102.66192135373299, lat: 31.005988487769518, height: 0}],
+ useModify: false,
+ },
+ "干扰线": {
+ allowPicking: false,
+ type: 'grx',
+ points: [{lon: 102.732420985008, lat: 30.97556325857848, height: 0},
+ {lon: 102.73983041603873, lat: 30.97504986175468, height: 0}],
+ useModify: false
+ },
+ "预警线": {
+ allowPicking: false,
+ type: 'yjx',
+ useModify: false,
+ points: [{lon: 102.732420985008, lat: 30.97956325857848, height: 0},
+ {lon: 102.73983041603873, lat: 30.98004986175468, height: 0}]
+ },
+ "目标分配线": {
+ allowPicking: false,
+ type: 'mbfpx',
+ useModify: false,
+ points: [{lon: 102.732420985008, lat: 30.97756325857848, height: 0},
+ {lon: 102.73983041603873, lat: 30.97804986175468, height: 0}]
+ },
+
+ "干扰关系线": {
+ type: "grgxx",
+ color: '#ffff00',
+ useModify: false,
+ points: [{
+ lon: 104.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 103.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+
+ "单色线": {
+ type: "line",
+ bklx: 'solid',
+ bkkd: 4,
+ color: '#64c324',
+ useModify: false,
+ points: [{
+ lon: 103.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 104.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "双色线": {
+ type: "line",
+ bklx: 'double',
+ bkkd: 4,
+ color: '#ff0000',
+ color2: '#0000ff',
+ useModify: false,
+ points: [{
+ lon: 103.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 104.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "通信抗测向线2": {
+ type: "txdkcxx2",
+ kcjd: 120,
+ kcgls: 10,
+ kcwb: '123123',
+ color: '#0059FFA3',
+ lon: 103.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ useModify: false,
+ points: []
+ },
+ "团指任务分界线": {
+ type: "tzrwfjx",
+ color: '#D5013A',
+ useModify: false,
+ points: [{
+ lon: 102.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 103.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "连指任务分界线": {
+ type: "lzrwfjx",
+ color: '#D5013A',
+ useModify: false,
+ points: [{
+ lon: 102.45554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 103.45554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "干扰波束": {
+ type: "grbs",
+ color: '#D5013A',
+ useModify: false,
+ lon: 102.23554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ qsjd: 30,
+ zzjd: 130,
+ bj: 100
+ }
+ }
+
+ drawOps = [];
+ timer = null;
+
+ constructor(props) {
+ super(props);
+ this.state = {
+ htmlString: '<h3>正在加载中...</h3>',
+ rate: 1000,
+ drawCount: 100
+ };
+ }
+
+ componentDidMount() {
+ fetch('./example/ExampleDrawDyPage.md')
+ .then(response => response.text())
+ .then(mdText => {
+ this.setState({htmlString: window.marked.parse(mdText)});
+ });
+ }
+
+
+ async draw(option) {
+ this.closeUpdate();
+ option.useModify = true;
+ delete option.points;
+ delete option.lon;
+ delete option.lat;
+ delete option.height;
+ let p = await this.mapFunction.mapApiService.draw(option);
+ p.drawEnd.subscribe(value => {
+ // alert(p.export());
+ })
+ this.drawOps.push(p);
+ }
+
+ arr2;
+
+ startTimer() {
+ if (this.timer) {
+ clearInterval(this.timer);
+ this.timer = null;
+ }
+
+ let arr = [];
+ let index = 0;
+ for (let key in this.optionObjs) {
+ if (!this.optionObjs[key].code) {
+ this.optionObjs[key].code = this.optionObjs[key].type + (index++);
+ }
+ arr.push(this.optionObjs[key]);
+ // if (this.optionObjs[key] && this.optionObjs[key].lat) {
+ // arr.push(this.optionObjs[key]);
+ // }
+ }
+ let arr2 = [];
+ for (let i = 0; i < parseInt(this.state.drawCount + ''); i++) {
+ let index = i % arr.length;
+ let option = JSON.parse(JSON.stringify(arr[index]));
+ option.lat = arr[index].lat + i * 0.0001;
+ option.lon = arr[index].lon + i * 0.0001;
+ option.code = option.type + i;
+ arr2.push(option);
+ }
+ this.mapFunction.mapApiService.showDrawDatas(arr2);
+ this.arr2 = arr2;
+
+ let i = 0;
+ this.timer = setInterval(() => {
+ i++;
+ for (let one of arr2) {
+ let option;
+ if (one && one.lat) {
+ // 表示航迹
+ if (one.points && one.points.length > 0) {
+ option = Object.assign({}, one);
+ one.points.push({
+ lat: one.lat,
+ lon: one.lon,
+ height: one.height,
+ });
+ one.lat = one.lat + 0.0001;
+ one.lon = one.lon + 0.0001;
+
+ option = one;
+ } else {
+ one.lat = one.lat + 0.0001;
+ option = one;
+ // option = {
+ // lat: one.lat,
+ // lon: one.lon + i * 0.0001,
+ // height: one.height,
+ // allowPicking: one.allowPicking,
+ // }
+ }
+ } else if (one && one.points) {
+ one.points = one.points.map(point => {
+ return {
+ lat: point.lat,
+ lon: point.lon + i * 0.0001,
+ height: point.height,
+ }
+ })
+ option = one;
+ }
+
+
+ if (i % 10 == 0) {
+ this.mapFunction.mapApiService.removeDraw(one.code);
+ this.mapFunction.mapApiService.showDrawDatas([one]);
+ } else {
+ this.mapFunction.mapApiService.updateDraw(one.code, option);
+ }
+ }
+ }, parseInt(this.state.rate + '') || 1000);
+ }
+
+ stopTimer() {
+ if (this.timer) {
+ clearInterval(this.timer);
+ this.timer = null;
+ }
+ if (this.arr2) {
+ for (let one of this.arr2) {
+ this.mapFunction.mapApiService.removeDraw(one.code);
+ }
+ this.arr2 = null;
+ }
+ }
+
+
+ updateOption(i) {
+ for (let d of this.drawOps) {
+ let dd = d.export();
+
+ let op = {};
+ if (dd.jbwb) {
+ op.jbwb = '更新' + i;
+ }
+ if (dd.bj) {
+ op.bj = dd.bj + 0.01;
+ }
+ if (dd.kcwb) {
+ op.kcwb = '更新' + i;
+ }
+
+ if (dd.lon && dd.lat) {
+ dd.lon = dd.lon + 0.001;
+ dd.lat = dd.lat + 0.0001;
+ op.lon = dd.lon;
+ op.lat = dd.lat;
+ }
+
+ if (dd.points) {
+ op.points = dd.points;
+ for (let point of op.points) {
+ point.lon = point.lon + 0.001;
+ point.lat = point.lat + 0.0001;
+ }
+ }
+ this.mapFunction.mapApiService.updateDraw(d.code, op);
+ }
+ }
+
+ changSize() {
+ if (this.timer) {
+ clearInterval(this.timer);
+ this.timer = null;
+ }
+ let i = 10;
+ let draws = this.mapFunction.mapApiService.drawPlotObjs;
+ this.timer = setInterval(() => {
+ i = i + 1;
+ for (let key in draws) {
+ let d = draws[key];
+ this.mapFunction.mapApiService.dyPlotService.changSize(d, i, i);
+ }
+ }, 1000);
+ }
+
+ changColor() {
+ this.mapFunction.mapApiService.dyPlotService.changeLineColor("#00FFE5");
+ }
+
+ setDrawScaleOptions() {
+ let options = [
+ {
+ scales: [0, 50],
+ width: 20,
+ height: 20
+ },
+ {
+ scales: [50, 500],
+ width: 32,
+ height: 32
+ },
+ {
+ scales: [500, 10000],
+ width: 64,
+ height: 64
+ }
+ ]
+ this.mapFunction.mapApiService.setDrawScaleOptions(options);
+ alert('设置成功!')
+ }
+
+ render() {
+ return (
+ <div className={"example_draw_container"}>
+ <h3>军标绘制/展示已有的军标数据</h3>
+ <div className={"map_wrapper"}>
+ <GIS refs={
+ e => {
+ this.mapFunction = e
+ }
+ }
+ map2_5D={true}
+ useSvgIcon={true}
+ iconScales={[[0, 2000], [2000, 10000], [10000, 5000000]]}
+ plotUrl={this.state.plotUrl}
+ mapRef={this}
+ showDefaultLayer={true}
+ />
+ </div>
+
+ <p>
+
+ <span>条数:</span>
+ <Input
+ style={{width: '100px', display: 'inline-block'}}
+ placeholder={'请输入条数'}
+ defaultValue={this.state['drawCount']}
+ onChange={(v) => this.setState({drawCount: v.target.value})}
+ />
+ </p>
+ <p>
+
+ <span>频率(ms):</span>
+ <Input
+ style={{width: '100px', display: 'inline-block'}}
+ placeholder={'请输入频率(ms)'}
+ defaultValue={this.state['rate']}
+ onChange={(v) => this.setState({rate: v.target.value})}
+ />
+ <br/>
+ </p>
+ <Button type="primary" onClick={this.startTimer.bind(this)}>开始</Button>
+ <Button type="primary" onClick={this.stopTimer.bind(this)}>结束</Button>
+ <div className={"code_wrapper"}>
+ <div dangerouslySetInnerHTML={{__html: this.state.htmlString}}></div>
+ </div>
+ </div>
+ )
+ }
+}
+
+
+
+```
diff --git a/public/example/ExampleDrawDyPage.md b/public/example/ExampleDrawDyPage.md
new file mode 100644
index 0000000..ca30a96
--- /dev/null
+++ b/public/example/ExampleDrawDyPage.md
@@ -0,0 +1,614 @@
+
+### ExampleDrawDyPage 代码
+
+```jsx
+import React, {Component} from 'react'
+import './ExampleDrawPage.css'
+import {GIS} from "iclient3d-plot-diy";
+import {Button, Input} from "antd";
+import {timer} from "rxjs";
+
+
+export default class ExampleDrawDyPage extends Component {
+
+
+ optionObjs = {
+ "目标简标": {
+ allowPicking: false,
+ code: '123123',
+ bz: true,
+ bzColor: '#e000ff',
+ bzLineColor: '#ff0000',
+ bzlx: 'simple',
+ jbwb: 'R:00017',
+ text: '123',
+ showText: true,
+ type: "2002",
+ useModify: false,
+ lon: 102.73054539488224, lat: 31.005468100060593, height: 0,
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "目标醒目": {
+ allowPicking: false,
+ bz: true,
+ bzColor: '#0000FF',
+ bzLineColor: '#000000',
+ bzlx: 'simple',
+ jbwb: 'R:00017',
+ xz: true,
+ xzColor: '#00ff00',
+ xx: true,
+ xxColor: '#ff0000',
+ type: "2002",
+ iconColor: '#dddddd',
+ returnHeight: true,
+ useModify: false,
+ lon: 102.73554539488224, lat: 31.005068100060593, height: 0,
+ points: []
+ },
+ "目标详标": {
+ allowPicking: false,
+ bz: true,
+ bzlx: 'detail',
+ jbwb: 'R:00017',
+ xbwb: "17/10/2019\n16:45:8\n9260.00-10400.00MHZ",
+ type: "2002",
+ useModify: false,
+ lon: 102.70054539488224, lat: 31.000468100060593, height: 0,
+ points: [],
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "飞行简标": {
+ allowPicking: false,
+ bz: true,
+ bzlx: 'simple',
+ jbwb: "P:00019",
+ type: "2010",
+ useModify: false,
+ lon: 102.76054539488224, lat: 31.000468100060593, height: 0,
+ points: [{lon: 102.76554539488224, lat: 31.000468100060593, height: 0}, {
+ lon: 102.76904539488224,
+ lat: 30.992468100060593,
+ height: 0
+ }],
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "飞行详标": {
+ allowPicking: false,
+ bz: true,
+ bzlx: 'detail',
+ jbwb: 'P:00019',
+ xbwb: "F16-1\n美国\n16:45:56\nR:00019\nC:00019",
+ type: "2010",
+ useModify: false,
+ lon: 102.73054539488224, lat: 31.001068100060593, height: 0,
+ points: [{lon: 102.73554539488224, lat: 31.001068100060593, height: 0}, {
+ lon: 102.73904539488224,
+ lat: 30.992468100060593,
+ height: 0
+ }],
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "雷达对抗侦察区域": {
+ allowPicking: false,
+ type: "lddkzcqy",
+ bj: 1,
+ qsjd: 30,
+ zzjd: 75,
+ lon: 102.72004539488224, lat: 31.001068100060593, height: 0,
+ useModify: false,
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "雷达对抗干扰波束": {
+ allowPicking: false,
+ type: 'lddkgrps',
+ bj: 1,
+ qsjd: 30,
+ zzjd: 75,
+ lon: 102.72004539488224, lat: 30.991068100060593, height: 0,
+ useModify: false,
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "雷达对抗测向线": {
+ allowPicking: false,
+ type: "lddkcxx",
+ kcwb: "10110",
+ kcgls: 1,
+ kcjd: 30,
+ useModify: false,
+ lon: 102.76054539488224, lat: 31.011068100060593, height: 0,
+ points: []
+ },
+ "雷达对抗关系": {
+ allowPicking: false,
+ type: "lddkgx",
+ kcwb: "10110",
+ kcgls: 1,
+ kcjd: 30,
+ useModify: false,
+ lon: 102.78054539488224,
+ lat: 31.015068100060593,
+ height: 0,
+ points: []
+ },
+ "雷达对目标探测": {
+ allowPicking: false,
+ type: "lddmbtc",
+ bj: 0.5,
+ qsjd: 0,
+ zzjd: 360,
+ lon: 102.71004539488224, lat: 30.990068100060593, height: 0,
+ useModify: false,
+ },
+ "通信对抗侦察区域": {
+ allowPicking: false,
+ type: "txdkzcqy",
+ bj: 0.5,
+ qsjd: 0,
+ zzjd: 360,
+ lon: 102.69804539488224, lat: 30.990068100060593, height: 0,
+ useModify: false,
+ },
+ "通信对抗干扰波束": {
+ allowPicking: false,
+ type: "txdkgrps",
+ bj: 1,
+ qsjd: 30,
+ zzjd: 75,
+ lon: 102.76004539488224, lat: 30.991068100060593, height: 0,
+ useModify: false,
+ },
+ "通信对抗测向线": {
+ allowPicking: false,
+ type: "txdkcxx",
+ kcgls: 1,
+ kcjd: 30,
+ kcwb: "10110",
+ useModify: false,
+ lon: 102.76854539488224, lat: 31.009068100060593, height: 0,
+ points: []
+ },
+ "通信畅通区域": {
+ allowPicking: false,
+ type: 'txctqy',
+ bj: 0.5,
+ qsjd: 0,
+ zzjd: 360,
+ lon: 102.71504539488224, lat: 30.980068100060593, height: 0,
+ useModify: false,
+ },
+ "通信网标绘": {
+ type: "txw",
+ allowPicking: false,
+ useModify: false,
+ lon: 102.70854539488224, lat: 31.0098468100060593, height: 0,
+ points: []
+ },
+ "光电对抗侦察区域": {
+ type: 'gddkzcqy',
+ allowPicking: false,
+ bj: 0.5,
+ qsjd: 0,
+ zzjd: 360,
+ lon: 102.69054539488224, lat: 31.0098468100060593, height: 0,
+ useModify: false,
+ },
+ "光电有源对抗干扰波束": {
+ allowPicking: false,
+ type: 'gdyydkgrbs',
+ kcgls: 1,
+ kcjd: 30,
+ lon: 102.67054539488224, lat: 31.0098468100060593, height: 0,
+ useModify: false,
+ },
+ "漫反射干扰区域": {
+ allowPicking: false,
+ type: 'mfsgrqy',
+ bj: 1,
+ qsjd: 30,
+ zzjd: 75,
+ lon: 102.67054539488224, lat: 31.0028468100060593, height: 0,
+ useModify: false,
+ },
+ '烟幕形成区域': {
+ allowPicking: false,
+ type: 'ymxcqy',
+ points: [{lon: 102.64984, lat: 30.99237, height: 0},
+ {lon: 102.66012682459443, lat: 30.995109020954718, height: 0},
+ {lon: 102.67126799815856, lat: 30.98766239848537, height: 0},
+ {lon: 102.64984, lat: 30.983747593478107, height: 0},
+ {lon: 102.64984, lat: 30.99237, height: 0}],
+ useModify: false,
+ },
+ "掩护区域": {
+ allowPicking: false,
+ type: 'yhqy',
+ points: [{lon: 102.642853926199, lat: 31.012509646376447, height: 0},
+ {lon: 102.65927322610115, lat: 31.01540811637356, height: 0},
+ {lon: 102.66192135373299, lat: 31.005988487769518, height: 0},
+ {lon: 102.64755620178961, lat: 31.00246196283815, height: 0},
+ {lon: 102.642853926199, lat: 31.012509646376447, height: 0}],
+ useModify: false,
+ },
+ "协同关系": {
+ allowPicking: false,
+ type: 'xtgx',
+ points: [{lon: 102.642853926199, lat: 31.012509646376447, height: 0},
+ {lon: 102.66192135373299, lat: 31.005988487769518, height: 0}],
+ useModify: false,
+ },
+ "干扰线": {
+ allowPicking: false,
+ type: 'grx',
+ points: [{lon: 102.732420985008, lat: 30.97556325857848, height: 0},
+ {lon: 102.73983041603873, lat: 30.97504986175468, height: 0}],
+ useModify: false
+ },
+ "预警线": {
+ allowPicking: false,
+ type: 'yjx',
+ useModify: false,
+ points: [{lon: 102.732420985008, lat: 30.97956325857848, height: 0},
+ {lon: 102.73983041603873, lat: 30.98004986175468, height: 0}]
+ },
+ "目标分配线": {
+ allowPicking: false,
+ type: 'mbfpx',
+ useModify: false,
+ points: [{lon: 102.732420985008, lat: 30.97756325857848, height: 0},
+ {lon: 102.73983041603873, lat: 30.97804986175468, height: 0}]
+ },
+
+ "干扰关系线": {
+ type: "grgxx",
+ color: '#ffff00',
+ useModify: false,
+ points: [{
+ lon: 104.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 103.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+
+ "单色线": {
+ type: "line",
+ bklx: 'solid',
+ bkkd: 4,
+ color: '#64c324',
+ useModify: false,
+ points: [{
+ lon: 103.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 104.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "双色线": {
+ type: "line",
+ bklx: 'double',
+ bkkd: 4,
+ color: '#ff0000',
+ color2: '#0000ff',
+ useModify: false,
+ points: [{
+ lon: 103.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 104.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "通信抗测向线2": {
+ type: "txdkcxx2",
+ kcjd: 120,
+ kcgls: 10,
+ kcwb: '123123',
+ color: '#0059FFA3',
+ lon: 103.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ useModify: false,
+ points: []
+ },
+ "团指任务分界线": {
+ type: "tzrwfjx",
+ color: '#D5013A',
+ useModify: false,
+ points: [{
+ lon: 102.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 103.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "连指任务分界线": {
+ type: "lzrwfjx",
+ color: '#D5013A',
+ useModify: false,
+ points: [{
+ lon: 102.45554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 103.45554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "干扰波束": {
+ type: "grbs",
+ color: '#D5013A',
+ useModify: false,
+ lon: 102.23554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ qsjd: 30,
+ zzjd: 130,
+ bj: 100
+ }
+ }
+
+ drawOps = [];
+ timer = null;
+
+ constructor(props) {
+ super(props);
+ this.state = {
+ htmlString: '<h3>正在加载中...</h3>',
+ rate: 1000,
+ drawCount: 100
+ };
+ }
+
+ componentDidMount() {
+ fetch('./example/ExampleDrawDyPage.md')
+ .then(response => response.text())
+ .then(mdText => {
+ this.setState({htmlString: window.marked.parse(mdText)});
+ });
+ }
+
+
+ async draw(option) {
+ this.closeUpdate();
+ option.useModify = true;
+ delete option.points;
+ delete option.lon;
+ delete option.lat;
+ delete option.height;
+ let p = await this.mapFunction.mapApiService.draw(option);
+ p.drawEnd.subscribe(value => {
+ // alert(p.export());
+ })
+ this.drawOps.push(p);
+ }
+
+ arr2;
+
+ startTimer() {
+ if (this.timer) {
+ clearInterval(this.timer);
+ this.timer = null;
+ }
+
+ let arr = [];
+ let index = 0;
+ for (let key in this.optionObjs) {
+ if (!this.optionObjs[key].code) {
+ this.optionObjs[key].code = this.optionObjs[key].type + ( index ++ );
+ }
+ arr.push(this.optionObjs[key]);
+ // if (this.optionObjs[key] && this.optionObjs[key].lat) {
+ // arr.push(this.optionObjs[key]);
+ // }
+ }
+ let arr2 = [];
+ for (let i = 0; i < parseInt(this.state.drawCount + ''); i++) {
+ let index = i % arr.length;
+ let option = JSON.parse(JSON.stringify(arr[index]));
+ option.lat = arr[index].lat + i * 0.0001;
+ option.lon = arr[index].lon + i * 0.0001;
+ option.code = option.type + i;
+ arr2.push(option);
+ }
+ this.mapFunction.mapApiService.showDrawDatas(arr2);
+ this.arr2 = arr2;
+
+ let i = 0;
+ this.timer = setInterval(() => {
+ i++;
+ for (let one of arr2) {
+ let option;
+ if (one && one.lat) {
+ // 表示航迹
+ if (one.points) {
+ option = {
+ points: one.points.map(point => {
+ return {
+ lat: point.lat,
+ lon: point.lon + i * 0.0001,
+ height: point.height,
+ }
+ }),
+ allowPicking: one.allowPicking,
+ }
+ } else {
+ option = {
+ lat: one.lat,
+ lon: one.lon + i * 0.0001,
+ height: one.height,
+ allowPicking: one.allowPicking,
+ }
+ }
+ } else if (one && one.points) {
+ option = {
+ points: one.points.map(point => {
+ return {
+ lat: point.lat,
+ lon: point.lon + i * 0.0001,
+ height: point.height,
+ }
+ }),
+ allowPicking: one.allowPicking,
+ }
+ }
+
+ this.mapFunction.mapApiService.updateDraw(one.code, option);
+ }
+ }, parseInt(this.state.rate + '') || 1000);
+ }
+
+ stopTimer() {
+ if (this.timer) {
+ clearInterval(this.timer);
+ this.timer = null;
+ }
+ if (this.arr2) {
+ for (let one of this.arr2) {
+ this.mapFunction.mapApiService.removeDraw(one.code);
+ }
+ this.arr2 = null;
+ }
+ }
+
+
+ updateOption(i) {
+ for (let d of this.drawOps) {
+ let dd = d.export();
+
+ let op = {};
+ if (dd.jbwb) {
+ op.jbwb = '更新' + i;
+ }
+ if (dd.bj) {
+ op.bj = dd.bj + 0.01;
+ }
+ if (dd.kcwb) {
+ op.kcwb = '更新' + i;
+ }
+
+ if (dd.lon && dd.lat) {
+ dd.lon = dd.lon + 0.001;
+ dd.lat = dd.lat + 0.0001;
+ op.lon = dd.lon;
+ op.lat = dd.lat;
+ }
+
+ if (dd.points) {
+ op.points = dd.points;
+ for (let point of op.points) {
+ point.lon = point.lon + 0.001;
+ point.lat = point.lat + 0.0001;
+ }
+ }
+ this.mapFunction.mapApiService.updateDraw(d.code, op);
+ }
+ }
+
+ changSize() {
+ if (this.timer) {
+ clearInterval(this.timer);
+ this.timer = null;
+ }
+ let i = 10;
+ let draws = this.mapFunction.mapApiService.drawPlotObjs;
+ this.timer = setInterval(() => {
+ i = i + 1;
+ for (let key in draws) {
+ let d = draws[key];
+ this.mapFunction.mapApiService.dyPlotService.changSize(d, i, i);
+ }
+ }, 1000);
+ }
+
+ changColor() {
+ this.mapFunction.mapApiService.dyPlotService.changeLineColor("#00FFE5");
+ }
+
+ setDrawScaleOptions() {
+ let options = [
+ {
+ scales: [0, 50],
+ width: 20,
+ height: 20
+ },
+ {
+ scales: [50, 500],
+ width: 32,
+ height: 32
+ },
+ {
+ scales: [500, 10000],
+ width: 64,
+ height: 64
+ }
+ ]
+ this.mapFunction.mapApiService.setDrawScaleOptions(options);
+ alert('设置成功!')
+ }
+
+ render() {
+ return (
+ <div className={"example_draw_container"}>
+ <h3>军标绘制/展示已有的军标数据</h3>
+ <div className={"map_wrapper"}>
+ <GIS refs={
+ e => {
+ this.mapFunction = e
+ }
+ }
+ map2_5D={true}
+ useSvgIcon={true}
+ iconScales={[[0, 2000], [2000, 10000], [10000, 5000000]]}
+ plotUrl={this.state.plotUrl}
+ mapRef={this}
+ showDefaultLayer={true}
+ />
+ </div>
+
+ <p>
+
+ <span>条数:</span>
+ <Input
+ style={{width: '100px', display: 'inline-block'}}
+ placeholder={'请输入条数'}
+ defaultValue={this.state['drawCount']}
+ onChange={(v) => this.setState({drawCount: v.target.value})}
+ />
+ </p>
+ <p>
+
+ <span>频率(ms):</span>
+ <Input
+ style={{width: '100px', display: 'inline-block'}}
+ placeholder={'请输入频率(ms)'}
+ defaultValue={this.state['rate']}
+ onChange={(v) => this.setState({rate: v.target.value})}
+ />
+ <br/>
+ </p>
+ <Button type="primary" onClick={this.startTimer.bind(this)}>开始</Button>
+ <Button type="primary" onClick={this.stopTimer.bind(this)}>结束</Button>
+ <div className={"code_wrapper"}>
+ <div dangerouslySetInnerHTML={{__html: this.state.htmlString}}></div>
+ </div>
+ </div>
+ )
+ }
+}
+
+
+
+```
diff --git a/public/example/ExampleDrawPage.md b/public/example/ExampleDrawPage.md
index 6cbf186..8a17620 100644
--- a/public/example/ExampleDrawPage.md
+++ b/public/example/ExampleDrawPage.md
@@ -14,7 +14,9 @@
optionObjs = {
"目标简标": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
code: '123123',
bz: true,
bzlx: 'simple',
@@ -27,7 +29,9 @@
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"目标详标": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
bz: true,
bzlx: 'detail',
jbwb: 'R:00017',
@@ -39,7 +43,9 @@
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"飞行简标": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
bz: true,
bzlx: 'simple',
jbwb: "P:00019",
@@ -54,7 +60,9 @@
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"飞行详标": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
bz: true,
bzlx: 'detail',
jbwb: 'P:00019',
@@ -70,7 +78,9 @@
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"雷达对抗侦察区域": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "lddkzcqy",
bj: 1,
qsjd: 30,
@@ -80,7 +90,9 @@
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"雷达对抗干扰波束": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'lddkgrps',
bj: 1,
qsjd: 30,
@@ -90,7 +102,9 @@
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"雷达对抗测向线": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "lddkcxx",
kcwb: "10110",
kcgls: 1,
@@ -100,7 +114,9 @@
points: []
},
"雷达对抗关系": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "lddkgx",
kcwb: "10110",
kcgls: 1,
@@ -112,7 +128,9 @@
points: []
},
"雷达对目标探测": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "lddmbtc",
bj: 0.5,
qsjd: 0,
@@ -121,7 +139,9 @@
useModify: false,
},
"通信对抗侦察区域": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "txdkzcqy",
bj: 0.5,
qsjd: 0,
@@ -130,7 +150,9 @@
useModify: false,
},
"通信对抗干扰波束": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "txdkgrps",
bj: 1,
qsjd: 30,
@@ -139,7 +161,9 @@
useModify: false,
},
"通信对抗测向线": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "txdkcxx",
kcgls: 1,
kcjd: 30,
@@ -149,7 +173,9 @@
points: []
},
"通信畅通区域": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'txctqy',
bj: 0.5,
qsjd: 0,
@@ -159,14 +185,18 @@
},
"通信网标绘": {
type: "txw",
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
useModify: false,
lon: 102.70854539488224, lat: 31.0098468100060593, height: 0,
points: []
},
"光电对抗侦察区域": {
type: 'gddkzcqy',
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
bj: 0.5,
qsjd: 0,
zzjd: 360,
@@ -174,7 +204,9 @@
useModify: false,
},
"光电有源对抗干扰波束": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'gdyydkgrbs',
kcgls: 1,
kcjd: 30,
@@ -182,7 +214,9 @@
useModify: false,
},
"漫反射干扰区域": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'mfsgrqy',
bj: 1,
qsjd: 30,
@@ -191,7 +225,9 @@
useModify: false,
},
'烟幕形成区域': {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'ymxcqy',
points: [{lon: 102.64984, lat: 30.99237, height: 0},
{lon: 102.66012682459443, lat: 30.995109020954718, height: 0},
@@ -201,7 +237,9 @@
useModify: false,
},
"掩护区域": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'yhqy',
points: [{lon: 102.642853926199, lat: 31.012509646376447, height: 0},
{lon: 102.65927322610115, lat: 31.01540811637356, height: 0},
@@ -211,35 +249,45 @@
useModify: false,
},
"协同关系": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'xtgx',
points: [{lon: 102.642853926199, lat: 31.012509646376447, height: 0},
{lon: 102.66192135373299, lat: 31.005988487769518, height: 0}],
useModify: false,
},
"干扰线": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'grx',
points: [{lon: 102.732420985008, lat: 30.97556325857848, height: 0},
{lon: 102.73983041603873, lat: 30.97504986175468, height: 0}],
useModify: false
},
"预警线": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'yjx',
useModify: false,
points: [{lon: 102.732420985008, lat: 30.97956325857848, height: 0},
{lon: 102.73983041603873, lat: 30.98004986175468, height: 0}]
},
"目标分配线": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'mbfpx',
useModify: false,
points: [{lon: 102.732420985008, lat: 30.97756325857848, height: 0},
{lon: 102.73983041603873, lat: 30.97804986175468, height: 0}]
},
"目标醒目": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
bz: true,
xz: true,
bzlx: 'simple',
@@ -441,6 +489,7 @@
this.mapFunction = e
}
}
+ map2_5D={true}
useSvgIcon={true}
iconScales={[[0, 2000], [2000, 10000], [10000, 5000000]]}
plotUrl={this.state.plotUrl}
diff --git a/public/example/ExampleFlyPage.md b/public/example/ExampleFlyPage.md
index 66dff62..b5cb619 100644
--- a/public/example/ExampleFlyPage.md
+++ b/public/example/ExampleFlyPage.md
@@ -81,10 +81,12 @@
"code": "ccccc",
"bzlx": "simple",
"jbwb": "R:00017",
+ "xbwb": "R:00017312312\n123123",
"type": "2010",
"useModify": false,
"lon": arr[0].lon,
"lat": arr[0].lat,
+ clampToGround: false,
xz: true,
"height": arr[0].height,
points: []
@@ -93,6 +95,7 @@
interval(300).pipe(take(120)).subscribe(number => {
this.mapFunction.mapApiService.updateDraw("ccccc", {
+ clampToGround: false,
lon: arr[number].lon,
lat: arr[number].lat,
height: arr[number].height,
diff --git a/public/example/ExampleXzxxPage.md b/public/example/ExampleXzxxPage.md
index af20317..dc6ec9d 100644
--- a/public/example/ExampleXzxxPage.md
+++ b/public/example/ExampleXzxxPage.md
@@ -25,6 +25,8 @@
lat: 31.005468100060593,
height: 0,
points: [],
+ text: '123',
+ showText: true,
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"目标醒目": {
@@ -34,6 +36,8 @@
bzlx: 'simple',
jbwb: 'R:00017',
xz: true,
+ text: '333333',
+ showText: true,
xzColor: '#00ff00',
xx: true,
xxColor: '#ff0000',
@@ -65,8 +69,25 @@
"单色线": {
type: "line",
bklx: 'solid',
+ bkkd: 2,
+ color: '#e30000',
+ useModify: false,
+ points: [{
+ lon: 103.72554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 104.72554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "双色线": {
+ type: "line",
+ bklx: 'double',
bkkd: 4,
- color: '#64c324',
+ color2: '#e30000',
+ color: '#babaff',
useModify: false,
points: [{
lon: 103.73554539488224,
@@ -78,19 +99,19 @@
height: 0,
}]
},
- "双色线": {
+ "双色线2": {
type: "line",
bklx: 'double',
bkkd: 4,
- color: '#ff0000',
- color2: '#0000ff',
+ color2: '#e30000',
+ color: '#baffba',
useModify: false,
points: [{
- lon: 103.73554539488224,
+ lon: 103.74554539488224,
lat: 31.005068100060593,
height: 0,
}, {
- lon: 104.73554539488224,
+ lon: 104.74554539488224,
lat: 32.005068100060593,
height: 0,
}]
@@ -229,6 +250,7 @@
this.mapFunction = e
}
}
+ map2_5D={true}
useSvgIcon={true}
iconScales={[[0, 2000], [2000, 10000], [10000, 5000000]]}
plotUrl={this.state.plotUrl}
diff --git a/src/App.js b/src/App.js
index 8680615..4cec9b6 100644
--- a/src/App.js
+++ b/src/App.js
@@ -1,7 +1,7 @@
import React from 'react';
import MainPage from "./MainPage";
import FirstPage from "./FirstPage";
-import ExamplePage from "./example/ExamplePage";
+import {ExamplePage} from "./example/ExamplePage";
import ExampleBhPage from "./example/ExampleBhPage";
import ExampleCustomToolbarPage from "./example/ExampleCustomToolbarPage";
import ExampleI18nPage from "./example/ExampleI18nPage";
@@ -29,6 +29,7 @@
import Example2DDrawUpdatePage from "./example/Example2DDrawUpdatePage";
import ExampleBlinkPage from "./example/ExampleBlinkPage";
import ExampleDrawDyPage from "./example/ExampleDrawDyPage";
+import ExampleDrawDy2Page from "./example/ExampleDrawDy2Page";
function App() {
return (
@@ -60,6 +61,7 @@
<Route path="/example/map2dDrawUpdate" exact component={Example2DDrawUpdatePage}/>
<Route path="/example/blink" exact component={ExampleBlinkPage}/>
<Route path="/example/dydraw" exact component={ExampleDrawDyPage}/>
+ <Route path="/example/dy2draw" exact component={ExampleDrawDy2Page}/>
<Route path="/doc" exact component={DocPage}/>
<Route path="/doc/:page" exact component={DocPage}/>
<Route path="/test" exact component={TestPage}/>
diff --git a/src/example/ExampleDrawDy2Page.js b/src/example/ExampleDrawDy2Page.js
new file mode 100644
index 0000000..7301cc0
--- /dev/null
+++ b/src/example/ExampleDrawDy2Page.js
@@ -0,0 +1,613 @@
+import React, {Component} from 'react'
+import './ExampleDrawPage.css'
+import {GIS} from "iclient3d-plot-diy";
+import {Button, Input} from "antd";
+import {timer} from "rxjs";
+
+
+export default class ExampleDrawDy2Page extends Component {
+
+
+ optionObjs = {
+ "目标简标": {
+ allowPicking: false,
+ code: '123123',
+ bz: true,
+ bzColor: '#e000ff',
+ bzLineColor: '#ff0000',
+ bzlx: 'simple',
+ jbwb: 'R:00017',
+ type: "2002",
+ returnHeight: true,
+ useModify: false,
+ lon: 102.73054539488224, lat: 31.005468100060593, height: 0,
+ points: [],
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "目标醒目": {
+ allowPicking: false,
+ bz: true,
+ bzColor: '#0000FF',
+ bzLineColor: '#000000',
+ bzlx: 'simple',
+ jbwb: 'R:00017',
+ xz: true,
+ xzColor: '#00ff00',
+ xx: true,
+ xxColor: '#ff0000',
+ type: "2002",
+ iconColor: '#dddddd',
+ returnHeight: true,
+ useModify: false,
+ lon: 102.73554539488224, lat: 31.005068100060593, height: 0,
+ points: []
+ },
+ "目标详标": {
+ allowPicking: false,
+ bz: true,
+ bzlx: 'detail',
+ jbwb: 'R:00017',
+ xbwb: "17/10/2019\n16:45:8\n9260.00-10400.00MHZ",
+ type: "2002",
+ useModify: false,
+ lon: 102.70054539488224, lat: 31.000468100060593, height: 0,
+ points: [],
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "飞行简标": {
+ allowPicking: false,
+ bz: true,
+ bzlx: 'simple',
+ jbwb: "P:00019",
+ type: "2010",
+ useModify: false,
+ lon: 102.76054539488224, lat: 31.000468100060593, height: 0,
+ points: [{lon: 102.76554539488224, lat: 31.000468100060593, height: 0}, {
+ lon: 102.76904539488224,
+ lat: 30.992468100060593,
+ height: 0
+ }],
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "飞行详标": {
+ allowPicking: false,
+ bz: true,
+ bzlx: 'detail',
+ jbwb: 'P:00019',
+ xbwb: "F16-1\n美国\n16:45:56\nR:00019\nC:00019",
+ type: "2010",
+ useModify: false,
+ lon: 102.73054539488224, lat: 31.001068100060593, height: 0,
+ points: [
+ {lon: 102.73554539488224, lat: 31.001068100060593, height: 0},
+ {lon: 102.73904539488224, lat: 30.992468100060593, height: 0}
+ ],
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "雷达对抗侦察区域": {
+ allowPicking: false,
+ type: "lddkzcqy",
+ bj: 1,
+ qsjd: 30,
+ zzjd: 75,
+ lon: 102.72004539488224, lat: 31.001068100060593, height: 0,
+ useModify: false,
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "雷达对抗干扰波束": {
+ allowPicking: false,
+ type: 'lddkgrps',
+ bj: 1,
+ qsjd: 30,
+ zzjd: 75,
+ lon: 102.72004539488224, lat: 30.991068100060593, height: 0,
+ useModify: false,
+ iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "雷达对抗测向线": {
+ allowPicking: false,
+ type: "lddkcxx",
+ kcwb: "10110",
+ kcgls: 1,
+ kcjd: 30,
+ useModify: false,
+ lon: 102.76054539488224, lat: 31.011068100060593, height: 0,
+ points: []
+ },
+ "雷达对抗关系": {
+ allowPicking: false,
+ type: "lddkgx",
+ kcwb: "10110",
+ kcgls: 1,
+ kcjd: 30,
+ useModify: false,
+ lon: 102.78054539488224,
+ lat: 31.015068100060593,
+ height: 0,
+ points: []
+ },
+ "雷达对目标探测": {
+ allowPicking: false,
+ type: "lddmbtc",
+ bj: 0.5,
+ qsjd: 0,
+ zzjd: 360,
+ lon: 102.71004539488224, lat: 30.990068100060593, height: 0,
+ useModify: false,
+ },
+ "通信对抗侦察区域": {
+ allowPicking: false,
+ type: "txdkzcqy",
+ bj: 0.5,
+ qsjd: 0,
+ zzjd: 360,
+ lon: 102.69804539488224, lat: 30.990068100060593, height: 0,
+ useModify: false,
+ },
+ "通信对抗干扰波束": {
+ allowPicking: false,
+ type: "txdkgrps",
+ bj: 1,
+ qsjd: 30,
+ zzjd: 75,
+ lon: 102.76004539488224, lat: 30.991068100060593, height: 0,
+ useModify: false,
+ },
+ "通信对抗测向线": {
+ allowPicking: false,
+ type: "txdkcxx",
+ kcgls: 1,
+ kcjd: 30,
+ kcwb: "10110",
+ useModify: false,
+ lon: 102.76854539488224, lat: 31.009068100060593, height: 0,
+ points: []
+ },
+ "通信畅通区域": {
+ allowPicking: false,
+ type: 'txctqy',
+ bj: 0.5,
+ qsjd: 0,
+ zzjd: 360,
+ lon: 102.71504539488224, lat: 30.980068100060593, height: 0,
+ useModify: false,
+ },
+ "通信网标绘": {
+ type: "txw",
+ allowPicking: false,
+ useModify: false,
+ lon: 102.70854539488224, lat: 31.0098468100060593, height: 0,
+ points: []
+ },
+ "光电对抗侦察区域": {
+ type: 'gddkzcqy',
+ allowPicking: false,
+ bj: 0.5,
+ qsjd: 0,
+ zzjd: 360,
+ lon: 102.69054539488224, lat: 31.0098468100060593, height: 0,
+ useModify: false,
+ },
+ "光电有源对抗干扰波束": {
+ allowPicking: false,
+ type: 'gdyydkgrbs',
+ kcgls: 1,
+ kcjd: 30,
+ lon: 102.67054539488224, lat: 31.0098468100060593, height: 0,
+ useModify: false,
+ },
+ "漫反射干扰区域": {
+ allowPicking: false,
+ type: 'mfsgrqy',
+ bj: 1,
+ qsjd: 30,
+ zzjd: 75,
+ lon: 102.67054539488224, lat: 31.0028468100060593, height: 0,
+ useModify: false,
+ },
+ '烟幕形成区域': {
+ allowPicking: false,
+ type: 'ymxcqy',
+ points: [{lon: 102.64984, lat: 30.99237, height: 0},
+ {lon: 102.66012682459443, lat: 30.995109020954718, height: 0},
+ {lon: 102.67126799815856, lat: 30.98766239848537, height: 0},
+ {lon: 102.64984, lat: 30.983747593478107, height: 0},
+ {lon: 102.64984, lat: 30.99237, height: 0}],
+ useModify: false,
+ },
+ "掩护区域": {
+ allowPicking: false,
+ type: 'yhqy',
+ points: [{lon: 102.642853926199, lat: 31.012509646376447, height: 0},
+ {lon: 102.65927322610115, lat: 31.01540811637356, height: 0},
+ {lon: 102.66192135373299, lat: 31.005988487769518, height: 0},
+ {lon: 102.64755620178961, lat: 31.00246196283815, height: 0},
+ {lon: 102.642853926199, lat: 31.012509646376447, height: 0}],
+ useModify: false,
+ },
+ "协同关系": {
+ allowPicking: false,
+ type: 'xtgx',
+ points: [{lon: 102.642853926199, lat: 31.012509646376447, height: 0},
+ {lon: 102.66192135373299, lat: 31.005988487769518, height: 0}],
+ useModify: false,
+ },
+ "干扰线": {
+ allowPicking: false,
+ type: 'grx',
+ points: [{lon: 102.732420985008, lat: 30.97556325857848, height: 0},
+ {lon: 102.73983041603873, lat: 30.97504986175468, height: 0}],
+ useModify: false
+ },
+ "预警线": {
+ allowPicking: false,
+ type: 'yjx',
+ useModify: false,
+ points: [{lon: 102.732420985008, lat: 30.97956325857848, height: 0},
+ {lon: 102.73983041603873, lat: 30.98004986175468, height: 0}]
+ },
+ "目标分配线": {
+ allowPicking: false,
+ type: 'mbfpx',
+ useModify: false,
+ points: [{lon: 102.732420985008, lat: 30.97756325857848, height: 0},
+ {lon: 102.73983041603873, lat: 30.97804986175468, height: 0}]
+ },
+
+ "干扰关系线": {
+ type: "grgxx",
+ color: '#ffff00',
+ useModify: false,
+ points: [{
+ lon: 104.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 103.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+
+ "单色线": {
+ type: "line",
+ bklx: 'solid',
+ bkkd: 4,
+ color: '#64c324',
+ useModify: false,
+ points: [{
+ lon: 103.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 104.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "双色线": {
+ type: "line",
+ bklx: 'double',
+ bkkd: 4,
+ color: '#ff0000',
+ color2: '#0000ff',
+ useModify: false,
+ points: [{
+ lon: 103.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 104.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "通信抗测向线2": {
+ type: "txdkcxx2",
+ kcjd: 120,
+ kcgls: 10,
+ kcwb: '123123',
+ color: '#0059FFA3',
+ lon: 103.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ useModify: false,
+ points: []
+ },
+ "团指任务分界线": {
+ type: "tzrwfjx",
+ color: '#D5013A',
+ useModify: false,
+ points: [{
+ lon: 102.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 103.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "连指任务分界线": {
+ type: "lzrwfjx",
+ color: '#D5013A',
+ useModify: false,
+ points: [{
+ lon: 102.45554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 103.45554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "干扰波束": {
+ type: "grbs",
+ color: '#D5013A',
+ useModify: false,
+ lon: 102.23554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ qsjd: 30,
+ zzjd: 130,
+ bj: 100
+ }
+ }
+
+ drawOps = [];
+ timer = null;
+
+ constructor(props) {
+ super(props);
+ this.state = {
+ htmlString: '<h3>正在加载中...</h3>',
+ rate: 1000,
+ drawCount: 100
+ };
+ }
+
+ componentDidMount() {
+ fetch('./example/ExampleDrawDyPage.md')
+ .then(response => response.text())
+ .then(mdText => {
+ this.setState({htmlString: window.marked.parse(mdText)});
+ });
+ }
+
+
+ async draw(option) {
+ this.closeUpdate();
+ option.useModify = true;
+ delete option.points;
+ delete option.lon;
+ delete option.lat;
+ delete option.height;
+ let p = await this.mapFunction.mapApiService.draw(option);
+ p.drawEnd.subscribe(value => {
+ // alert(p.export());
+ })
+ this.drawOps.push(p);
+ }
+
+ arr2;
+
+ startTimer() {
+ if (this.timer) {
+ clearInterval(this.timer);
+ this.timer = null;
+ }
+
+ let arr = [];
+ let index = 0;
+ for (let key in this.optionObjs) {
+ if (!this.optionObjs[key].code) {
+ this.optionObjs[key].code = this.optionObjs[key].type + (index++);
+ }
+ arr.push(this.optionObjs[key]);
+ // if (this.optionObjs[key] && this.optionObjs[key].lat) {
+ // arr.push(this.optionObjs[key]);
+ // }
+ }
+ let arr2 = [];
+ for (let i = 0; i < parseInt(this.state.drawCount + ''); i++) {
+ let index = i % arr.length;
+ let option = JSON.parse(JSON.stringify(arr[index]));
+ option.lat = arr[index].lat + i * 0.0001;
+ option.lon = arr[index].lon + i * 0.0001;
+ option.code = option.type + i;
+ arr2.push(option);
+ }
+ this.mapFunction.mapApiService.showDrawDatas(arr2);
+ this.arr2 = arr2;
+
+ let i = 0;
+ this.timer = setInterval(() => {
+ i++;
+ for (let one of arr2) {
+ let option;
+ if (one && one.lat) {
+ // 表示航迹
+ if (one.points && one.points.length > 0) {
+ option = Object.assign({}, one);
+ one.points.push({
+ lat: one.lat,
+ lon: one.lon,
+ height: one.height,
+ });
+ one.lat = one.lat + 0.0001;
+ one.lon = one.lon + 0.0001;
+
+ option = one;
+ } else {
+ one.lat = one.lat + 0.0001;
+ option = one;
+ // option = {
+ // lat: one.lat,
+ // lon: one.lon + i * 0.0001,
+ // height: one.height,
+ // allowPicking: one.allowPicking,
+ // }
+ }
+ } else if (one && one.points) {
+ one.points = one.points.map(point => {
+ return {
+ lat: point.lat,
+ lon: point.lon + i * 0.0001,
+ height: point.height,
+ }
+ })
+ option = one;
+ }
+
+
+ if (i % 10 == 0) {
+ this.mapFunction.mapApiService.removeDraw(one.code);
+ this.mapFunction.mapApiService.showDrawDatas([one]);
+ } else {
+ this.mapFunction.mapApiService.updateDraw(one.code, option);
+ }
+ }
+ }, parseInt(this.state.rate + '') || 1000);
+ }
+
+ stopTimer() {
+ if (this.timer) {
+ clearInterval(this.timer);
+ this.timer = null;
+ }
+ if (this.arr2) {
+ for (let one of this.arr2) {
+ this.mapFunction.mapApiService.removeDraw(one.code);
+ }
+ this.arr2 = null;
+ }
+ }
+
+
+ updateOption(i) {
+ for (let d of this.drawOps) {
+ let dd = d.export();
+
+ let op = {};
+ if (dd.jbwb) {
+ op.jbwb = '更新' + i;
+ }
+ if (dd.bj) {
+ op.bj = dd.bj + 0.01;
+ }
+ if (dd.kcwb) {
+ op.kcwb = '更新' + i;
+ }
+
+ if (dd.lon && dd.lat) {
+ dd.lon = dd.lon + 0.001;
+ dd.lat = dd.lat + 0.0001;
+ op.lon = dd.lon;
+ op.lat = dd.lat;
+ }
+
+ if (dd.points) {
+ op.points = dd.points;
+ for (let point of op.points) {
+ point.lon = point.lon + 0.001;
+ point.lat = point.lat + 0.0001;
+ }
+ }
+ this.mapFunction.mapApiService.updateDraw(d.code, op);
+ }
+ }
+
+ changSize() {
+ if (this.timer) {
+ clearInterval(this.timer);
+ this.timer = null;
+ }
+ let i = 10;
+ let draws = this.mapFunction.mapApiService.drawPlotObjs;
+ this.timer = setInterval(() => {
+ i = i + 1;
+ for (let key in draws) {
+ let d = draws[key];
+ this.mapFunction.mapApiService.dyPlotService.changSize(d, i, i);
+ }
+ }, 1000);
+ }
+
+ changColor() {
+ this.mapFunction.mapApiService.dyPlotService.changeLineColor("#00FFE5");
+ }
+
+ setDrawScaleOptions() {
+ let options = [
+ {
+ scales: [0, 50],
+ width: 20,
+ height: 20
+ },
+ {
+ scales: [50, 500],
+ width: 32,
+ height: 32
+ },
+ {
+ scales: [500, 10000],
+ width: 64,
+ height: 64
+ }
+ ]
+ this.mapFunction.mapApiService.setDrawScaleOptions(options);
+ alert('设置成功!')
+ }
+
+ render() {
+ return (
+ <div className={"example_draw_container"}>
+ <h3>军标绘制/展示已有的军标数据</h3>
+ <div className={"map_wrapper"}>
+ <GIS refs={
+ e => {
+ this.mapFunction = e
+ }
+ }
+ map2_5D={true}
+ useSvgIcon={true}
+ iconScales={[[0, 2000], [2000, 10000], [10000, 5000000]]}
+ plotUrl={this.state.plotUrl}
+ mapRef={this}
+ showDefaultLayer={true}
+ />
+ </div>
+
+ <p>
+
+ <span>条数:</span>
+ <Input
+ style={{width: '100px', display: 'inline-block'}}
+ placeholder={'请输入条数'}
+ defaultValue={this.state['drawCount']}
+ onChange={(v) => this.setState({drawCount: v.target.value})}
+ />
+ </p>
+ <p>
+
+ <span>频率(ms):</span>
+ <Input
+ style={{width: '100px', display: 'inline-block'}}
+ placeholder={'请输入频率(ms)'}
+ defaultValue={this.state['rate']}
+ onChange={(v) => this.setState({rate: v.target.value})}
+ />
+ <br/>
+ </p>
+ <Button type="primary" onClick={this.startTimer.bind(this)}>开始</Button>
+ <Button type="primary" onClick={this.stopTimer.bind(this)}>结束</Button>
+ <div className={"code_wrapper"}>
+ <div dangerouslySetInnerHTML={{__html: this.state.htmlString}}></div>
+ </div>
+ </div>
+ )
+ }
+}
+
+
diff --git a/src/example/ExampleDrawDyPage.js b/src/example/ExampleDrawDyPage.js
index b2bb1b5..f58bb8f 100644
--- a/src/example/ExampleDrawDyPage.js
+++ b/src/example/ExampleDrawDyPage.js
@@ -13,14 +13,34 @@
allowPicking: false,
code: '123123',
bz: true,
+ bzColor: '#e000ff',
+ bzLineColor: '#ff0000',
bzlx: 'simple',
jbwb: 'R:00017',
+ text: '123',
+ showText: true,
type: "2002",
- returnHeight: true,
useModify: false,
lon: 102.73054539488224, lat: 31.005468100060593, height: 0,
- points: [],
iconSize: [[20, 20], [30, 30], [40, 40]]
+ },
+ "目标醒目": {
+ allowPicking: false,
+ bz: true,
+ bzColor: '#0000FF',
+ bzLineColor: '#000000',
+ bzlx: 'simple',
+ jbwb: 'R:00017',
+ xz: true,
+ xzColor: '#00ff00',
+ xx: true,
+ xxColor: '#ff0000',
+ type: "2002",
+ iconColor: '#dddddd',
+ returnHeight: true,
+ useModify: false,
+ lon: 102.73554539488224, lat: 31.005068100060593, height: 0,
+ points: []
},
"目标详标": {
allowPicking: false,
@@ -234,18 +254,106 @@
points: [{lon: 102.732420985008, lat: 30.97756325857848, height: 0},
{lon: 102.73983041603873, lat: 30.97804986175468, height: 0}]
},
- "目标醒目": {
- allowPicking: false,
- bz: true,
- xz: true,
- bzlx: 'simple',
- jbwb: 'R:00017',
- type: "2002",
- returnHeight: true,
+
+ "干扰关系线": {
+ type: "grgxx",
+ color: '#ffff00',
useModify: false,
- lon: 102.73554539488224, lat: 31.005068100060593, height: 0,
+ points: [{
+ lon: 104.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 103.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+
+ "单色线": {
+ type: "line",
+ bklx: 'solid',
+ bkkd: 4,
+ color: '#64c324',
+ useModify: false,
+ points: [{
+ lon: 103.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 104.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "双色线": {
+ type: "line",
+ bklx: 'double',
+ bkkd: 4,
+ color: '#ff0000',
+ color2: '#0000ff',
+ useModify: false,
+ points: [{
+ lon: 103.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 104.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "通信抗测向线2": {
+ type: "txdkcxx2",
+ kcjd: 120,
+ kcgls: 10,
+ kcwb: '123123',
+ color: '#0059FFA3',
+ lon: 103.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ useModify: false,
points: []
},
+ "团指任务分界线": {
+ type: "tzrwfjx",
+ color: '#D5013A',
+ useModify: false,
+ points: [{
+ lon: 102.73554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 103.73554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "连指任务分界线": {
+ type: "lzrwfjx",
+ color: '#D5013A',
+ useModify: false,
+ points: [{
+ lon: 102.45554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 103.45554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "干扰波束": {
+ type: "grbs",
+ color: '#D5013A',
+ useModify: false,
+ lon: 102.23554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ qsjd: 30,
+ zzjd: 130,
+ bj: 100
+ }
}
drawOps = [];
@@ -255,8 +363,8 @@
super(props);
this.state = {
htmlString: '<h3>正在加载中...</h3>',
- rate: 200,
- drawCount: 150
+ rate: 1000,
+ drawCount: 100
};
}
@@ -292,9 +400,10 @@
}
let arr = [];
+ let index = 0;
for (let key in this.optionObjs) {
if (!this.optionObjs[key].code) {
- this.optionObjs[key].code = this.optionObjs[key].type;
+ this.optionObjs[key].code = this.optionObjs[key].type + ( index ++ );
}
arr.push(this.optionObjs[key]);
// if (this.optionObjs[key] && this.optionObjs[key].lat) {
@@ -319,11 +428,25 @@
for (let one of arr2) {
let option;
if (one && one.lat) {
- option = {
- lat: one.lat,
- lon: one.lon + i * 0.0001,
- height: one.height,
- allowPicking: one.allowPicking,
+ // 表示航迹
+ if (one.points) {
+ option = {
+ points: one.points.map(point => {
+ return {
+ lat: point.lat,
+ lon: point.lon + i * 0.0001,
+ height: point.height,
+ }
+ }),
+ allowPicking: one.allowPicking,
+ }
+ } else {
+ option = {
+ lat: one.lat,
+ lon: one.lon + i * 0.0001,
+ height: one.height,
+ allowPicking: one.allowPicking,
+ }
}
} else if (one && one.points) {
option = {
@@ -442,6 +565,7 @@
this.mapFunction = e
}
}
+ map2_5D={true}
useSvgIcon={true}
iconScales={[[0, 2000], [2000, 10000], [10000, 5000000]]}
plotUrl={this.state.plotUrl}
diff --git a/src/example/ExampleDrawPage.js b/src/example/ExampleDrawPage.js
index 50d25b0..7869aec 100644
--- a/src/example/ExampleDrawPage.js
+++ b/src/example/ExampleDrawPage.js
@@ -10,7 +10,9 @@
optionObjs = {
"目标简标": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
code: '123123',
bz: true,
bzlx: 'simple',
@@ -23,7 +25,9 @@
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"目标详标": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
bz: true,
bzlx: 'detail',
jbwb: 'R:00017',
@@ -35,7 +39,9 @@
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"飞行简标": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
bz: true,
bzlx: 'simple',
jbwb: "P:00019",
@@ -50,7 +56,9 @@
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"飞行详标": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
bz: true,
bzlx: 'detail',
jbwb: 'P:00019',
@@ -66,7 +74,9 @@
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"雷达对抗侦察区域": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "lddkzcqy",
bj: 1,
qsjd: 30,
@@ -76,7 +86,9 @@
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"雷达对抗干扰波束": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'lddkgrps',
bj: 1,
qsjd: 30,
@@ -86,7 +98,9 @@
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"雷达对抗测向线": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "lddkcxx",
kcwb: "10110",
kcgls: 1,
@@ -96,7 +110,9 @@
points: []
},
"雷达对抗关系": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "lddkgx",
kcwb: "10110",
kcgls: 1,
@@ -108,7 +124,9 @@
points: []
},
"雷达对目标探测": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "lddmbtc",
bj: 0.5,
qsjd: 0,
@@ -117,7 +135,9 @@
useModify: false,
},
"通信对抗侦察区域": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "txdkzcqy",
bj: 0.5,
qsjd: 0,
@@ -126,7 +146,9 @@
useModify: false,
},
"通信对抗干扰波束": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "txdkgrps",
bj: 1,
qsjd: 30,
@@ -135,7 +157,9 @@
useModify: false,
},
"通信对抗测向线": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: "txdkcxx",
kcgls: 1,
kcjd: 30,
@@ -145,7 +169,9 @@
points: []
},
"通信畅通区域": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'txctqy',
bj: 0.5,
qsjd: 0,
@@ -155,14 +181,18 @@
},
"通信网标绘": {
type: "txw",
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
useModify: false,
lon: 102.70854539488224, lat: 31.0098468100060593, height: 0,
points: []
},
"光电对抗侦察区域": {
type: 'gddkzcqy',
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
bj: 0.5,
qsjd: 0,
zzjd: 360,
@@ -170,7 +200,9 @@
useModify: false,
},
"光电有源对抗干扰波束": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'gdyydkgrbs',
kcgls: 1,
kcjd: 30,
@@ -178,7 +210,9 @@
useModify: false,
},
"漫反射干扰区域": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'mfsgrqy',
bj: 1,
qsjd: 30,
@@ -187,7 +221,9 @@
useModify: false,
},
'烟幕形成区域': {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'ymxcqy',
points: [{lon: 102.64984, lat: 30.99237, height: 0},
{lon: 102.66012682459443, lat: 30.995109020954718, height: 0},
@@ -197,7 +233,9 @@
useModify: false,
},
"掩护区域": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'yhqy',
points: [{lon: 102.642853926199, lat: 31.012509646376447, height: 0},
{lon: 102.65927322610115, lat: 31.01540811637356, height: 0},
@@ -207,35 +245,45 @@
useModify: false,
},
"协同关系": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'xtgx',
points: [{lon: 102.642853926199, lat: 31.012509646376447, height: 0},
{lon: 102.66192135373299, lat: 31.005988487769518, height: 0}],
useModify: false,
},
"干扰线": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'grx',
points: [{lon: 102.732420985008, lat: 30.97556325857848, height: 0},
{lon: 102.73983041603873, lat: 30.97504986175468, height: 0}],
useModify: false
},
"预警线": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'yjx',
useModify: false,
points: [{lon: 102.732420985008, lat: 30.97956325857848, height: 0},
{lon: 102.73983041603873, lat: 30.98004986175468, height: 0}]
},
"目标分配线": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
type: 'mbfpx',
useModify: false,
points: [{lon: 102.732420985008, lat: 30.97756325857848, height: 0},
{lon: 102.73983041603873, lat: 30.97804986175468, height: 0}]
},
"目标醒目": {
- allowPicking: false,
+ // allowPicking: false,
+ // show: false,
+ // clampToGround: false,
bz: true,
xz: true,
bzlx: 'simple',
@@ -437,6 +485,7 @@
this.mapFunction = e
}
}
+ map2_5D={true}
useSvgIcon={true}
iconScales={[[0, 2000], [2000, 10000], [10000, 5000000]]}
plotUrl={this.state.plotUrl}
diff --git a/src/example/ExampleFlyPage.js b/src/example/ExampleFlyPage.js
index 640bdc5..bdfc183 100644
--- a/src/example/ExampleFlyPage.js
+++ b/src/example/ExampleFlyPage.js
@@ -77,10 +77,12 @@
"code": "ccccc",
"bzlx": "simple",
"jbwb": "R:00017",
+ "xbwb": "R:00017312312\n123123",
"type": "2010",
"useModify": false,
"lon": arr[0].lon,
"lat": arr[0].lat,
+ clampToGround: false,
xz: true,
"height": arr[0].height,
points: []
@@ -89,6 +91,7 @@
interval(300).pipe(take(120)).subscribe(number => {
this.mapFunction.mapApiService.updateDraw("ccccc", {
+ clampToGround: false,
lon: arr[number].lon,
lat: arr[number].lat,
height: arr[number].height,
diff --git a/src/example/ExamplePage.js b/src/example/ExamplePage.js
index 4302b4e..189259a 100644
--- a/src/example/ExamplePage.js
+++ b/src/example/ExamplePage.js
@@ -2,11 +2,11 @@
import './ExamplePage.css'
import {NavLink} from "react-router-dom";
import "./ExampleLayerPage.css";
-import {Button, Input} from "antd";
+import {Button, Input, Checkbox} from "antd";
import {updateLanguage} from "iclient3d-plot-diy";
-export default class ExamplePage extends Component {
+export class ExamplePage extends Component {
constructor(props) {
super(props);
this.state = {
@@ -15,6 +15,7 @@
imageUrl: localStorage.getItem('plot_image') || '',
demUrl: localStorage.getItem('plot_dem') || '',
addressSearchUrl: localStorage.getItem('addressSearchUrl') || '',
+ sctValue: 'true' === (localStorage.getItem('plot_dem_sct') || 'true'),
};
}
@@ -34,6 +35,11 @@
updateDemUrl(event) {
localStorage.setItem('plot_dem', this.state.demUrl || '');
alert('plotUrl服务地址设置成功');
+ }
+
+ updateSctValue(event) {
+ localStorage.setItem('plot_dem_sct', this.state.sctValue + '');
+ alert('sctValue设置成功');
}
updateAddressSearchUrl(event) {
@@ -83,6 +89,7 @@
<li><NavLink to='/example/map2dDrawUpdate'>2d画图更新</NavLink></li>
<li><NavLink to='/example/blink'>闪烁</NavLink></li>
<li><NavLink to='/example/dydraw'>移动式</NavLink></li>
+ <li><NavLink to='/example/dy2draw'>移动式2</NavLink></li>
</ul>
<div className={"button_wrapper"}>
@@ -113,7 +120,16 @@
defaultValue={this.state['demUrl']}
onChange={(v) => this.setState({demUrl: v.target.value})}
/>
- <Button type="primary" onClick={this.updateDemUrl.bind(this)}>设置</Button>
+
+ <Checkbox
+ style={{marginLeft: '10px'}}
+ checked={this.state.sctValue}
+ onChange={(e) => this.setState({sctValue: e.target.checked})}
+ ></Checkbox>Sct
+ <Button type="primary" onClick={() => {
+ this.updateDemUrl();
+ this.updateSctValue();
+ }}>设置</Button>
</Input.Group>
<br/>
diff --git a/src/example/ExampleXzxxPage.js b/src/example/ExampleXzxxPage.js
index ae9efd5..7546dac 100644
--- a/src/example/ExampleXzxxPage.js
+++ b/src/example/ExampleXzxxPage.js
@@ -21,6 +21,8 @@
lat: 31.005468100060593,
height: 0,
points: [],
+ text: '123',
+ showText: true,
iconSize: [[20, 20], [30, 30], [40, 40]]
},
"目标醒目": {
@@ -30,6 +32,8 @@
bzlx: 'simple',
jbwb: 'R:00017',
xz: true,
+ text: '333333',
+ showText: true,
xzColor: '#00ff00',
xx: true,
xxColor: '#ff0000',
@@ -61,8 +65,25 @@
"单色线": {
type: "line",
bklx: 'solid',
+ bkkd: 2,
+ color: '#e30000',
+ useModify: false,
+ points: [{
+ lon: 103.72554539488224,
+ lat: 31.005068100060593,
+ height: 0,
+ }, {
+ lon: 104.72554539488224,
+ lat: 32.005068100060593,
+ height: 0,
+ }]
+ },
+ "双色线": {
+ type: "line",
+ bklx: 'double',
bkkd: 4,
- color: '#64c324',
+ color2: '#e30000',
+ color: '#babaff',
useModify: false,
points: [{
lon: 103.73554539488224,
@@ -74,19 +95,19 @@
height: 0,
}]
},
- "双色线": {
+ "双色线2": {
type: "line",
bklx: 'double',
bkkd: 4,
- color: '#ff0000',
- color2: '#0000ff',
+ color2: '#e30000',
+ color: '#baffba',
useModify: false,
points: [{
- lon: 103.73554539488224,
+ lon: 103.74554539488224,
lat: 31.005068100060593,
height: 0,
}, {
- lon: 104.73554539488224,
+ lon: 104.74554539488224,
lat: 32.005068100060593,
height: 0,
}]
@@ -225,6 +246,7 @@
this.mapFunction = e
}
}
+ map2_5D={true}
useSvgIcon={true}
iconScales={[[0, 2000], [2000, 10000], [10000, 5000000]]}
plotUrl={this.state.plotUrl}
--
Gitblit v1.9.3