@@ -6,6 +6,7 @@ import {MapboxOverlay} from '@deck.gl/mapbox';
6
6
7
7
import { DeckProps } from '@deck.gl/core' ;
8
8
import { trajectoryQuerySource , trajectoryTableSource } from '@carto/api-client' ;
9
+ import type { TrajectoryTableSourceResponse , TrajectoryQuerySourceResponse } from '@carto/api-client' ;
9
10
import { TrajectoryTileLayer , VectorTileLayer , colorContinuous } from '@deck.gl/carto' ;
10
11
import { normalizeTimestamp } from '@deck.gl/carto/layers/trajectory-utils' ;
11
12
@@ -171,13 +172,11 @@ export default function App() {
171
172
setCurrentTime ( 0 ) ;
172
173
setTimeRange ( [ 0 , 1000 ] ) ;
173
174
setTimestampRange ( null ) ;
174
- setClickedTrajectoryId ( null ) ;
175
175
}
176
176
177
177
const mapRef = useRef ( null ) ;
178
178
const currentDataset = DATASETS [ selectedDataset ] ;
179
- const [ dataSource , setDataSource ] = useState ( null ) ;
180
- const [ clickedTrajectoryId , setClickedTrajectoryId ] = useState ( null ) ;
179
+ const [ dataSource , setDataSource ] = useState < TrajectoryTableSourceResponse | TrajectoryQuerySourceResponse | null > ( null ) ;
181
180
182
181
// Handle trajectory click to jump to start time
183
182
function handleTrajectoryClick ( info ) {
@@ -209,7 +208,6 @@ export default function App() {
209
208
console . log ( 'Jumping to trajectory start time:' , startTime ) ;
210
209
211
210
setCurrentTime ( startTime ) ;
212
- setClickedTrajectoryId ( trajectoryId ) ;
213
211
}
214
212
} ) . catch ( error => {
215
213
console . error ( 'Error fetching trajectory time range:' , error ) ;
@@ -277,6 +275,7 @@ export default function App() {
277
275
const showTrips = layer === 'Trips' ;
278
276
const showPoints = layer === 'Point' ;
279
277
const styleName = mapStyle ;
278
+ const trajectoryIdColumn = dataSource . widgetSource . props . trajectoryIdColumn ;
280
279
281
280
const layers = showPoints ? [
282
281
new VectorTileLayer ( {
@@ -285,7 +284,7 @@ export default function App() {
285
284
pointRadiusMinPixels : lineWidth ,
286
285
pointRadiusMaxPixels : lineWidth ,
287
286
getFillColor : colorContinuous ( {
288
- attr : 'trajectoryId' ,
287
+ attr : trajectoryIdColumn ,
289
288
domain : [ 0 , 100 , 200 , 300 , 400 , 500 , 600 , 700 , 800 , 900 , 1000 ] ,
290
289
colors : palette
291
290
} ) ,
@@ -295,12 +294,13 @@ export default function App() {
295
294
new TrajectoryTileLayer ( {
296
295
id : 'trajectories' ,
297
296
data : dataSource ,
298
- renderMode : showTrips ? 'trips' : 'paths' ,
299
297
uniqueIdProperty : 'trajectoryId' , // TODO internalize this
300
298
299
+ renderMode : showTrips ? 'trips' : 'paths' ,
300
+
301
301
// Color entire line by trajectoryId, will be invoked once per line
302
302
getLineColor : colorContinuous ( {
303
- attr : 'trajectoryId' ,
303
+ attr : trajectoryIdColumn ,
304
304
domain : [ 0 , 100 , 200 , 300 , 400 , 500 , 600 , 700 , 800 , 900 , 1000 ] ,
305
305
colors : palette
306
306
} ) ,
@@ -313,17 +313,15 @@ export default function App() {
313
313
colors : palette
314
314
} ) ,
315
315
updateTriggers : { getLineColor : [ palette ] , getFillColor : [ palette ] } ,
316
+
317
+ //
316
318
currentTime,
317
319
trailLength,
318
320
getWidth : lineWidth ,
319
321
fadeTrail : true ,
322
+
323
+
320
324
widthUnits : 'pixels' ,
321
- opacity : 0.8 ,
322
- billboard : true ,
323
- jointRounded : true ,
324
- capRounded : true ,
325
- _pathType : 'open' ,
326
- zRange : [ 0 , 4000 ] ,
327
325
onClick : handleTrajectoryClick ,
328
326
onHover : info => {
329
327
info . object && console . log ( 'onHover' , info . object . properties ) ;
0 commit comments