Skip to content

Commit

Permalink
Support pointType prop to allow changing point rendering in GeoJsonLa…
Browse files Browse the repository at this point in the history
…yer (visgl#5835)
  • Loading branch information
felixpalmer authored Jun 11, 2021
1 parent bace44e commit 9d0e568
Show file tree
Hide file tree
Showing 17 changed files with 432 additions and 244 deletions.
4 changes: 3 additions & 1 deletion modules/core/src/lib/composite-layer.js
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ export default class CompositeLayer extends Layer {
}

// Returns sub layer props for a specific sublayer
// eslint-disable-next-line complexity
getSubLayerProps(sublayerProps = {}) {
const {
opacity,
Expand Down Expand Up @@ -180,8 +181,9 @@ export default class CompositeLayer extends Layer {

if (overridingSublayerProps) {
const propTypes = this.constructor._propTypes;
const subLayerPropTypes = sublayerProps.type ? sublayerProps.type._propTypes : {};
for (const key in overridingSublayerProps) {
const propType = propTypes[key];
const propType = subLayerPropTypes[key] || propTypes[key];
// eslint-disable-next-line
if (propType && propType.type === 'accessor') {
overridingSublayerProps[key] = this.getSubLayerAccessor(overridingSublayerProps[key]);
Expand Down
11 changes: 10 additions & 1 deletion modules/geo-layers/src/mvt-layer/mvt-layer.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import {log} from '@deck.gl/core';
import {Matrix4} from 'math.gl';
import {MVTLoader} from '@loaders.gl/mvt';
import {binaryToGeoJson} from '@loaders.gl/gis';
Expand All @@ -9,6 +10,8 @@ import TileLayer from '../tile-layer/tile-layer';
import {getURLFromTemplate, isURLTemplate} from '../tile-layer/utils';
import {transform} from './coordinate-transform';

import {GeoJsonLayer} from '@deck.gl/layers';

const WORLD_SIZE = 512;

const defaultProps = {
Expand Down Expand Up @@ -134,7 +137,13 @@ export default class MVTLayer extends TileLayer {
props.extensions = [...(props.extensions || []), new ClipExtension()];
}

return super.renderSubLayers(props);
const subLayers = super.renderSubLayers(props);

if (this.props.binary && !(subLayers instanceof GeoJsonLayer)) {
log.warn('renderSubLayers() must return GeoJsonLayer when using binary:true')();
}

return subLayers;
}

_updateAutoHighlight(info) {
Expand Down
Loading

0 comments on commit 9d0e568

Please sign in to comment.