Skip to content

Commit

Permalink
Fix error where querySourceFeatures has parameters omitted. #3540 (#3542
Browse files Browse the repository at this point in the history
)

* fix TypeError thrown when Map.querySourceFeatures doesn't include a parameters option

* reiterate in docs that parameters is optional and fix to remove redundant params entry
  • Loading branch information
andrewharvey authored and Lucas Wojciechowski committed Nov 7, 2016
1 parent d9853b2 commit fcfd275
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 4 deletions.
2 changes: 1 addition & 1 deletion js/source/tile.js
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ class Tile {

if (!layer) return;

const filter = featureFilter(params.filter);
const filter = featureFilter(params && params.filter);
const coord = { z: this.coord.z, x: this.coord.x, y: this.coord.y };

for (let i = 0; i < layer.length; i++) {
Expand Down
6 changes: 3 additions & 3 deletions js/ui/map.js
Original file line number Diff line number Diff line change
Expand Up @@ -575,7 +575,7 @@ class Map extends Camera {
* representing features within the specified vector tile or GeoJSON source that satisfy the query parameters.
*
* @param {string} sourceID The ID of the vector tile or GeoJSON source to query.
* @param {Object} parameters
* @param {Object} [parameters]
* @param {string} [parameters.sourceLayer] The name of the vector tile layer to query. *For vector tile
* sources, this parameter is required.* For GeoJSON sources, it is ignored.
* @param {Array} [parameters.filter] A [filter](https://www.mapbox.com/mapbox-gl-style-spec/#types-filter)
Expand All @@ -600,8 +600,8 @@ class Map extends Camera {
* @see [Filter features within map view](https://www.mapbox.com/mapbox-gl-js/example/filter-features-within-map-view/)
* @see [Highlight features containing similar data](https://www.mapbox.com/mapbox-gl-js/example/query-similar-features/)
*/
querySourceFeatures(sourceID, params) {
return this.style.querySourceFeatures(sourceID, params);
querySourceFeatures(sourceID, parameters) {
return this.style.querySourceFeatures(sourceID, parameters);
}

/**
Expand Down
3 changes: 3 additions & 0 deletions test/js/source/tile.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ test('querySourceFeatures', (t) => {
geojsonWrapper.name = '_geojsonTileLayer';
tile.rawTileData = vtpbf({ layers: { '_geojsonTileLayer': geojsonWrapper }});

result = [];
tile.querySourceFeatures(result);
t.equal(result.length, 1);
result = [];
tile.querySourceFeatures(result, {});
t.equal(result.length, 1);
Expand Down

0 comments on commit fcfd275

Please sign in to comment.