• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

geosolutions-it / MapStore2 / 19710972030

26 Nov 2025 03:38PM UTC coverage: 76.665% (-0.3%) from 76.929%
19710972030

Pull #11119

github

web-flow
Fix maven publish (#11739)
Pull Request #11119: Layer Selection Plugin on ArcGIS, WFS & WMS layers

32272 of 50209 branches covered (64.28%)

3 of 3 new or added lines in 2 files covered. (100.0%)

3018 existing lines in 249 files now uncovered.

40157 of 52380 relevant lines covered (76.66%)

37.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

87.5
/web/client/components/TOC/fragments/settings/ThreeDTilesSettings.jsx
1
/*
2
 * Copyright 2023, GeoSolutions Sas.
3
 * All rights reserved.
4
 *
5
 * This source code is licensed under the BSD-style license found in the
6
 * LICENSE file in the root directory of this source tree.
7
 */
8

9

10
import React from 'react';
11
import PropTypes from 'prop-types';
12
import { FormGroup, ControlLabel, InputGroup, Checkbox } from 'react-bootstrap';
13
import DebouncedFormControl from '../../../misc/DebouncedFormControl';
14
import Message from '../../../I18N/Message';
15
import PointCloudShadingSettings from './PointCloudShadingSettings';
16
import Select from 'react-select';
17
import InfoPopover from '../../../widgets/widget/InfoPopover';
18

19
/**
20
 * ThreeDTilesSettings. This component shows the 3d tiles options available
21
 * @prop {object} layer the layer options
22
 * @prop {object} onChange callback on every on change event
23
 */
24
function ThreeDTilesSettings({
25
    layer,
26
    onChange
27
}) {
28
    if (layer?.type !== '3dtiles') {
51✔
29
        return null;
47✔
30
    }
31
    return (
4✔
32
        <div style={{ margin: '0 -8px' }}>
33
            <FormGroup className="form-group-flex">
34
                <Checkbox
35
                    key="enableImageryOverlay"
36
                    value="enableImageryOverlay"
37
                    data-qa="3dtiles-enable-imagery-overlay-option"
38
                    checked={layer.enableImageryOverlay === undefined ? false : layer.enableImageryOverlay}
4!
UNCOV
39
                    onChange={(e) => onChange("enableImageryOverlay", e.target.checked)}
×
40
                >
41
                    <Message msgId="layerProperties.3dTiles.enableImageryOverlay" /><InfoPopover text={<Message msgId="layerProperties.3dTiles.enableImageryOverlayInfo" />} />
42
                </Checkbox>
43
            </FormGroup>
44
            <FormGroup className="form-group-flex">
45
                <ControlLabel><Message msgId="layerProperties.3dTiles.format"/></ControlLabel>
46
                <InputGroup>
47
                    <Select
48
                        value={layer.format === 'pnts' ? 'pnts' : '3dmodel'}
4✔
49
                        fallbackValue={0}
50
                        clearable={false}
51
                        options={[
52
                            {
53
                                value: '3dmodel',
54
                                label: <Message msgId="layerProperties.3dTiles.3dModel"/>
55
                            },
56
                            {
57
                                value: 'pnts',
58
                                label: <Message msgId="layerProperties.3dTiles.pointCloud"/>
59
                            }
60
                        ]}
61
                        onChange={(option)=> {
62
                            onChange('format', option?.value);
1✔
63
                        }}
64
                    />
65
                </InputGroup>
66
            </FormGroup>
67
            <FormGroup className="form-group-flex">
68
                <ControlLabel><Message msgId="layerProperties.heightOffset"/></ControlLabel>
69
                <InputGroup style={{ maxWidth: 120 }}>
70
                    <DebouncedFormControl
71
                        type="number"
72
                        name={"heightOffset"}
73
                        value={layer.heightOffset || 0}
8✔
74
                        fallbackValue={0}
75
                        onChange={(val)=> {
76
                            onChange('heightOffset', val !== undefined ? parseFloat(val) : undefined);
1!
77
                        }}
78
                    />
79
                    <InputGroup.Addon>m</InputGroup.Addon>
80
                </InputGroup>
81
            </FormGroup>
82
            <PointCloudShadingSettings
83
                layer={layer}
84
                onChange={onChange}
85
            />
86
        </div>
87
    );
88
}
89

90
ThreeDTilesSettings.propTypes = {
1✔
91
    layer: PropTypes.object,
92
    onChange: PropTypes.func
93
};
94

95
ThreeDTilesSettings.defaultProps = {
1✔
96
    layer: {},
97
    onChange: () => {}
98
};
99

100
export default ThreeDTilesSettings;
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc