-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuildings_layer.js
42 lines (37 loc) · 1016 Bytes
/
buildings_layer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import React, {Component} from "react";
import {StyleSheet, View} from "react-native";
import {connect} from "react-redux";
import Mapbox from "@mapbox/react-native-mapbox-gl";
export function BuildingsLayer(props) {
if (!props.layerVisibility) {
return null;
}
return (
<Mapbox.VectorSource>
<Mapbox.FillExtrusionLayer
id="building3d"
sourceLayerID="building"
style={[
mapStyles.building,
{
visibility: props.layerVisibility.buildings ? "visible" : "none"
}
]}
/>
</Mapbox.VectorSource>
);
}
function mapStateToProps(state) {
return {
layerVisibility: state.layerVisibility
};
}
export default connect(mapStateToProps)(BuildingsLayer);
const mapStyles = Mapbox.StyleSheet.create({
building: {
fillExtrusionOpacity: 0.5,
fillExtrusionHeight: Mapbox.StyleSheet.identity("height"),
fillExtrusionBase: Mapbox.StyleSheet.identity("min_height"),
fillExtrusionColor: "#FFFFFF"
}
});