1- import React , { useState , useMemo } from 'react'
1+ import React , { useState } from 'react'
22import PropTypes from 'prop-types'
33
44import { FlyToInterpolator } from '@deck.gl/core'
@@ -13,11 +13,10 @@ import {
1313} from '../../shared/map-props'
1414
1515const INIT_VIEW_STATE = {
16- pitch : 0 ,
17- bearing : 0 ,
16+ bearing : - 4 ,
1817 transitionDuration : 1000 ,
1918 transitionInterpolator : new FlyToInterpolator ( ) ,
20- latitude : 58 ,
19+ latitude : 57 ,
2120 longitude : - 94 ,
2221 zoom : 2.6 ,
2322}
@@ -38,6 +37,7 @@ const IntelligenceMap = ({
3837 geoProvinceCentroidJson,
3938 intelligenceProvince,
4039 intelligenceCity,
40+ pitch,
4141} ) => {
4242 const [ hoverProvince , setHoverProvince ] = useState ( { } )
4343 const [ hoverCity , setHoverCity ] = useState ( { } )
@@ -67,7 +67,7 @@ const IntelligenceMap = ({
6767 } )
6868
6969 const handleFillColor = ( type , d ) => {
70- let fillColor ;
70+ let fillColor
7171
7272 if ( type === 'outer' ) {
7373 fillColor = getProvinceFillColor ( d . value . total , maxP , minP )
@@ -101,53 +101,50 @@ const IntelligenceMap = ({
101101 return toolTipText
102102 }
103103
104- const layers = useMemo ( ( ) => {
105- return [
106- new GeoJsonLayer ( {
107- id : 'outerGeo-layer' ,
108- data : intelligenceProvince ,
109- pickable : true ,
110- stroked : true ,
111- filled : true ,
112- getLineColor : [ 0 , 0 , 0 ] ,
113- lineWidthMinPixels : 1 ,
114- getFillColor : d => handleFillColor ( 'outer' , d ) ,
115- updateTriggers : {
116- getFillColor : { hoverProvince } ,
117- } ,
118- onHover : data => setHoverProvince ( data ) ,
119- } ) ,
120-
121- new GeoJsonLayer ( {
122- id : 'innerGeo-layer' ,
123- data : intelligenceCity ,
124- pickable : true ,
125- stroked : true ,
126- filled : true ,
127- getLineColor : [ 0 , 0 , 0 ] ,
128- lineWidthMinPixels : 1 ,
129- getFillColor : d => handleFillColor ( 'inner' , d ) ,
130- updateTriggers : {
131- getFillColor : [ hoverCity ] ,
132- } ,
133- onHover : data => setHoverCity ( data ) ,
134- } ) ,
135-
136- new TextLayer ( {
137- id : 'text-layer' ,
138- data : geoProvinceCentroidJson ,
139- billboard : false ,
140- pickable : false ,
141- getPosition : d => d . centroid . coordinates ,
142- getText : d => `${ d . name } \n ${ d . value . percentage } %` ,
143- getPixelOffset : d => [ d . offset . x , d . offset . y ] ,
144- getSize : 12 ,
145- getAngle : 0 ,
146- getTextAnchor : 'middle' ,
147- getAlignmentBaseline : 'center' ,
148- } ) ,
149- ]
150- } )
104+ const layers = [
105+ new GeoJsonLayer ( {
106+ id : 'outerGeo-layer' ,
107+ data : intelligenceProvince ,
108+ pickable : true ,
109+ stroked : true ,
110+ filled : true ,
111+ getLineColor : [ 0 , 0 , 0 ] ,
112+ lineWidthMinPixels : 1 ,
113+ getFillColor : d => handleFillColor ( 'outer' , d ) ,
114+ updateTriggers : {
115+ getFillColor : { hoverProvince } ,
116+ } ,
117+ onHover : data => setHoverProvince ( data ) ,
118+ } ) ,
119+
120+ new GeoJsonLayer ( {
121+ id : 'innerGeo-layer' ,
122+ data : intelligenceCity ,
123+ pickable : true ,
124+ stroked : true ,
125+ filled : true ,
126+ getLineColor : [ 0 , 0 , 0 ] ,
127+ lineWidthMinPixels : 1 ,
128+ getFillColor : d => handleFillColor ( 'inner' , d ) ,
129+ updateTriggers : {
130+ getFillColor : [ hoverCity ] ,
131+ } ,
132+ onHover : data => setHoverCity ( data ) ,
133+ } ) ,
134+
135+ new TextLayer ( {
136+ id : 'text-layer' ,
137+ data : geoProvinceCentroidJson ,
138+ billboard : false ,
139+ pickable : false ,
140+ getPosition : d => d . coordinates ,
141+ getText : d => `${ d . properties . NAME } \n ${ d . value . percentage } %` ,
142+ getSize : 12 ,
143+ getAngle : 0 ,
144+ getTextAnchor : 'middle' ,
145+ getAlignmentBaseline : 'center' ,
146+ } ) ,
147+ ]
151148
152149 return (
153150 < Map
@@ -162,7 +159,7 @@ const IntelligenceMap = ({
162159 } ,
163160 } }
164161 controller = { false }
165- pitch = { 20 }
162+ pitch = { pitch }
166163 viewStateOverride = { INIT_VIEW_STATE }
167164 mapboxApiAccessToken = { mapboxApiAccessToken }
168165 mapStyle = "mapbox://styles/chiuleung/ckon6rngz3wpg17pkwuj12hrx"
@@ -179,4 +176,4 @@ IntelligenceMap.defaultProps = {
179176 ...commonDefaultProps ,
180177}
181178
182- export default IntelligenceMap
179+ export default IntelligenceMap
0 commit comments