edit | blame | history | raw

ExampleDefaultSelectPage 代码

import React, {Component} from 'react'
import './ExampleFwyPage.css'
import {Bp, GIS} from "../iclient3d-plot-diy";
import {Button} from "antd";

export default class ExampleDefaultSelectPage extends Component {
    drawOps = [];

    constructor(props) {
        super(props);
        this.state = {
            htmlString: '<h3>正在加载中...</h3>',
            bp: null,
            clickBpIndex: -1,
        };
    }

    options = [
        {
            "bz": true,
            "bzlx": "simple",
            "jbwb": "R:00017",
            "type": 2002,
            "code": "draw_primitive_1000_",
            "useModify": false,
            "lon": 102.73181802939419,
            "lat": 30.982754659441543,
            "height": 0
        },
        {
            "bz": true,
            "bzlx": "detail",
            "jbwb": "R:00017",
            "type": 2002,
            "xbwb": "17/10/2019\n16:45:8\n9260.00-10400.00MHZ",
            "code": "draw_primitive_1001_",
            "useModify": false,
            "lon": 102.74521918551825,
            "lat": 30.982390144247127,
            "height": 0
        }, {
            useModify: false,
            type: "fwy",
            bjs: [1, 2, 3],
            "lon": 102.75521918551825,
            "lat": 30.972390144247127,
            "height": 0
        }
    ]

    componentDidMount() {
        this.showData();

        fetch('./example/ExampleFwyPage.md')
            .then(response => response.text())
            .then(mdText => {
                this.setState({htmlString: window.marked.parse(mdText)});
            });

        //监听拨盘事件
        this.mapFunction.addBpListener((code, dom, drawObj, obj) => {
            if (code && dom) {
                dom.innerHTML = '';
                const newElement = document.createElement('canvas');
                newElement.id = 'bpCanvas';
                dom.append(newElement);

                const bpConfig = {
                    canvasId: 'bpCanvas',
                    items: [
                        {name: '图标1', img: './project3d/icon/bpImgs/icon-1.png'},
                        {name: '图标2', img: './project3d/icon/bpImgs/icon-2.png'},
                        {name: '图标3', img: './project3d/icon/bpImgs/icon-3.png'},
                        {name: '关闭拨盘', img: './project3d/icon/bpImgs/icon-4.png'},
                    ]
                };
                this.setState({
                    bp: new Bp(bpConfig)
                })
                this.state.bp.createBp();
                this.state.bp.listenClick((index) => {
                    this.setState({
                        clickBpIndex: index
                    });
                    if (index === 3) {
                        this.mapFunction.closeBp();
                    } else {
                        alert('点击了第' + (index + 1) + '个面板')
                    }
                });
            }
        });
    }

    showData() {

        let op = {
            useModify: true,
            type: "fwy",
            bjs: [1, 2, 3, 4, 5, 6]
        }
        this.mapFunction.mapApiService.draw(op);
        this.mapFunction.mapApiService.showDrawDatas(this.options);
    }

    openEdit() {
        this.mapFunction.openDefaultSelectedEdit();
        alert('已打开编辑')
    }

    closeEdit() {
        this.mapFunction.closeDefaultSelectedEdit();
        alert('已关闭编辑')
    }
    openDefaultShowPropertyPanel() {
        this.mapFunction.openDefaultShowPropertyPanel();
        alert('已打开属性面板')
    }

    closeDefaultShowPropertyPanel() {
        this.mapFunction.closeDefaultShowPropertyPanel();
        alert('已关闭属性面板')
    }

    closeBp() {
        this.state.bp && this.state.bp.removeCanvasListener();
        this.setState({
            bp: null,
            clickBpIndex: -1
        })
        this.mapFunction.closeBp();
    }


    render() {
        return (
            <div className={"example_fwy_container"}>
                <h3>默认选中</h3>
                <div className={"map_wrapper"}>
                    <GIS refs={
                        e => {
                            this.mapFunction = e
                        }
                    }
                         plotUrl={this.state.plotUrl}
                         mapRef={this}
                         showDefaultLayer={true}
                         defaultShowPropertyPanel={false}
                         defaultSelectedEdit={false}
                    />
                </div>
                <Button type="primary" onClick={this.closeEdit.bind(this)}>关闭编辑功能</Button>
                <Button type="primary" onClick={this.openEdit.bind(this)}>打开编辑功能</Button>
                <Button type="primary" onClick={this.closeDefaultShowPropertyPanel.bind(this)}>关闭编辑面板</Button>
                <Button type="primary" onClick={this.openDefaultShowPropertyPanel.bind(this)}>打开编辑面板</Button>

                <Button type="primary" onClick={this.closeBp.bind(this)}>关闭拨盘</Button>
                <div className={"code_wrapper"}>
                    <div dangerouslySetInnerHTML={{__html: this.state.htmlString}}></div>
                </div>
            </div>
        )
    }
}