99import { FlyToInterpolator , MapView } from '@deck.gl/core'
1010import DeckGL from '@deck.gl/react'
1111import { StaticMap } from 'react-map-gl'
12- import { GeoJsonLayer } from '@deck.gl/layers' ;
12+ import { GeoJsonLayer , TextLayer } from '@deck.gl/layers' ;
1313
1414import { styled , setup } from 'goober'
1515
@@ -30,9 +30,9 @@ const INIT_VIEW_STATE = {
3030 bearing : 0 ,
3131 transitionDuration : 1000 ,
3232 transitionInterpolator : new FlyToInterpolator ( ) ,
33- latitude : 57 .411,
33+ latitude : 61 .411,
3434 longitude : - 99 ,
35- zoom : 2.9 ,
35+ zoom : 2.5 ,
3636}
3737
3838const propTypes = {
@@ -92,41 +92,53 @@ const IntelligenceMap = ({
9292 } , [ ] ) ;
9393
9494 const handleFillColor = d => {
95- let fillColor = [ 100 , 105 , 155 , 50 ]
95+ let fillColor = [ 153 , 204 , 255 , 70 ]
9696 if ( hoverProvince . object ) {
9797 if ( d . pr_code === hoverProvince . object . pr_code ) {
98- fillColor = [ 100 , 105 , 155 ]
98+ fillColor = [ 0 , 128 , 255 , 99 ]
9999 } else {
100- fillColor = [ 100 , 105 , 155 , 50 ]
100+ fillColor = [ 153 , 204 , 255 , 70 ]
101101 }
102102 }
103103
104104 return fillColor
105105 }
106106
107- layers = new GeoJsonLayer ( {
108- id : 'polygon-layer' ,
109- data : GeoJson ,
107+ layers = [
108+ new GeoJsonLayer ( {
109+ id : 'polygon-layer' ,
110+ data : GeoJson ,
111+ pickable : true ,
112+ stroked : false ,
113+ extruded : true ,
114+ filled : true ,
115+ wireframe : true ,
116+ getLineWidth : 1 ,
117+ lineWidthMinPixels : 1 ,
118+ lineWidthScale : 20 ,
119+ getText : d => d . pr_name ,
120+ getLineWidth : 1 ,
121+ getElevation : 30 ,
122+ getFillColor : d => handleFillColor ( d ) ,
123+ getRadius : 100 ,
124+ updateTriggers : {
125+ getFillColor : [ hoverProvince ]
126+ } ,
127+ onHover : d => setHoverProvince ( d )
128+ } ) ,
129+
130+ new TextLayer ( {
131+ id : 'text-layer' ,
132+ data : 'https://raw.githubusercontent.com/Clavicus/Testing-Requests/master/canadian-provinces.json' ,
110133 pickable : true ,
111- stroked : false ,
112- extruded : true ,
113- filled : true ,
114- wireframe : true ,
115- getLineWidth : 1 ,
116- lineWidthMinPixels : 1 ,
117- lineWidthScale : 20 ,
118- getLineColor : ( data => {
119- return [ 80 , 80 , 80 ]
120- } ) ,
121- getLineWidth : 1 ,
122- getElevation : 30 ,
123- getFillColor : d => handleFillColor ( d ) ,
124- getRadius : 100 ,
125- updateTriggers : {
126- getFillColor : [ hoverProvince ]
127- } ,
128- onHover : d => setHoverProvince ( d )
129- } ) ;
134+ getPosition : d => [ d . longitude , d . latitude ] ,
135+ getText : d => d . short ,
136+ getSize : 30 ,
137+ getAngle : 0 ,
138+ getTextAnchor : 'middle' ,
139+ getAlignmentBaseline : 'center' ,
140+ } ) ,
141+ ] ;
130142
131143 useLayoutEffect ( ( ) => {
132144 setViewState ( o => ( {
@@ -172,7 +184,7 @@ const IntelligenceMap = ({
172184 } }
173185 initialViewState = { viewState }
174186 views = { MAP_VIEW }
175- layers = { [ layers ] }
187+ layers = { layers }
176188 controller = { true }
177189 onHover = { finalOnHover }
178190 getTooltip = { data => data . object && data . object . pr_name }
0 commit comments