Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 我可以使用React.js MapBox GL js获取在MapBox Studio中创建的MapBox图层吗?_Reactjs_Mapbox_Mapbox Gl Js - Fatal编程技术网

Reactjs 我可以使用React.js MapBox GL js获取在MapBox Studio中创建的MapBox图层吗?

Reactjs 我可以使用React.js MapBox GL js获取在MapBox Studio中创建的MapBox图层吗?,reactjs,mapbox,mapbox-gl-js,Reactjs,Mapbox,Mapbox Gl Js,我在MapBox Studio中设置了几个图层,并使用MapBox GL JS访问此地图。我想知道是否可以使用React.js访问这些层,而不仅仅是使用React.js动态创建的层 我尝试了使用map.getStyle().layers,但由于它返回未定义的结果,因此无法工作。您完全可以!为此,需要使用map对象上可用的getLayer()方法(检查文档) 我已经包含了下面一个使用Mapbox的React应用程序的片段。创建映射后,设置加载事件侦听器,然后在回调中调用getLayer()方法 g

我在MapBox Studio中设置了几个图层,并使用MapBox GL JS访问此地图。我想知道是否可以使用React.js访问这些层,而不仅仅是使用React.js动态创建的层


我尝试了使用
map.getStyle().layers
,但由于它返回未定义的结果,因此无法工作。

您完全可以!为此,需要使用map对象上可用的
getLayer()
方法(检查文档)

我已经包含了下面一个使用Mapbox的React应用程序的片段。创建映射后,设置加载事件侦听器,然后在回调中调用
getLayer()
方法

getLayer
方法需要一个层ID参数,您可以从Mapbox Studio获取该参数。图层ID只是Mapbox Studio中侧栏中的图层标签。在下面的示例中,“犹他雪崩路径”是我在Mapbox Studio地图样式中为图层命名的名称

希望这有帮助!我在写一个MMAX框和反应深潜水博客系列文章。我最近发表的一篇文章可能对你也有帮助

//创建映射并对其进行配置
//查看API参考了解更多选项
// https://docs.mapbox.com/mapbox-gl-js/api/map/
常量映射=新的mapboxgl.map({
容器:mapContainer.current,
//自定义Mapbox Studio地图样式url
样式:“mapbox://styles/lcdesigns/ckkuethsm0tzs17s4ibit7nag",
中间:[-111.75,40.581],
缩放:12,
});
//只希望在地图完全加载后使用它
//如果在地图加载之前尝试添加源和图层
//事情不会正常进行
map.on(“加载”,()=>{
//抓取你想要的地图图层
//“犹他雪崩路径”是指Mapbox Studio中的图层名称
const layer=map.getLayer(“犹他雪崩路径”);
});