如何解决Nebula.gl DrawPolygonMode无法捕捉
我对nebula.gl很陌生,我一直在尝试使用DrawPolygonMode捕捉功能来放置要放置在可编辑层(而非其他层)上的功能。
设置modeConfig表示不需要additionalSnapTargets
,并且仍然应该发生捕捉。这段代码目前没有发生这种情况:
// index.tsx
import React,{ useState,useEffect } from 'react';
import DeckGL from 'deck.gl';
import { EditableGeoJsonLayer,DrawPolygonMode } from 'nebula.gl';
import { StaticMap } from 'react-map-gl';
// ...
// const viewState = ...
// const MAPBOX_TOKEN = ...
const selectedFeatureIndexes = [] as any;
const editableLayer = new EditableGeoJsonLayer({
id: 'geojson',data: geojson,pickable:true,//@ts-ignore
modeConfig:{
enableSnapping:true
},//@ts-ignore
mode: DrawPolygonMode,pickingRadius:100,selectedFeatureIndexes,//@ts-ignore
onEdit: (e) => {setGeojson(e.updatedData)}
});
export function Map(props:any){
const [geojson,setGeojson] = useState({
type: 'FeatureCollection' as any,features: [] as any} as any)
return(
<DeckGL
width='100%'
height='100%'
layers={[editableLayer]}
viewState={viewState}
controller={true}>
<StaticMap
width='100%'
height='100%'
mapboxApiAccessToken={MAPBOX_TOKEN} />
</DeckGL>
);
}
绘制多边形时我是否缺少回调或该功能不可用? advanced example显示了如何进行翻译,但是我不确定是否适用于DrawPolygonMode
模式。另外,mode : new SnappableMode(new DrawPolygonMode())
不会产生我想要的效果。
此外,我还必须放置几个//@ts-ignore
,因为EditableGeoJsonLayer
不能识别某些参数(其中mode
中)。
提前谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。