基于mapbox中的文本输入过滤多边形

基于mapbox中的文本输入过滤多边形,mapbox,mapbox-gl-js,mapbox-gl,Mapbox,Mapbox Gl Js,Mapbox Gl,我正在尝试对本教程中提供的mapbox代码进行修改: 但是,我没有过滤单个点,而是试图找出如何过滤GeoJSON中的多边形,该GeoJSON基于整数特征附加了名称。基本上,我希望能够在文本框中输入多边形的附加名称,并将贴图过滤器仅用于该多边形。我很难识别示例中要分离和移植的代码部分。以前有人尝试过类似的方法吗?当你说“仅过滤该多边形”时,我认为你的意思(用地理空间术语)是“过滤以仅显示该多边形内的点” 您将希望使用Turf的“”功能 您将要更改此代码: layerIDs.forEach(func

我正在尝试对本教程中提供的mapbox代码进行修改:

但是,我没有过滤单个点,而是试图找出如何过滤GeoJSON中的多边形,该GeoJSON基于整数特征附加了名称。基本上,我希望能够在文本框中输入多边形的附加名称,并将贴图过滤器仅用于该多边形。我很难识别示例中要分离和移植的代码部分。以前有人尝试过类似的方法吗?

当你说“仅过滤该多边形”时,我认为你的意思(用地理空间术语)是“过滤以仅显示该多边形内的点”

您将希望使用Turf的“”功能

您将要更改此代码:

layerIDs.forEach(function(layerID) {
    map.setLayoutProperty(layerID, 'visibility',
      layerID.indexOf(value) > -1 ? 'visible' : 'none');
    });
您必须迭代点本身(而不仅仅是它们的ID),并使用BooleanInside函数检查点是否位于加载到其他地方的多边形内