如何解决use-supercluster 获取空数组 编辑:
在 figuring out 如何处理 TypeScript 和 use-supercluster 库之后,我已经“让它工作了”,直到我遇到一个新问题:每当我使用 useSuperCluster()
函数时,我都会得到一个空数组。
我正在关注 creator's guide,所以我可以处理我自己的项目。
这就是我所做的:
const [bounds,setBounds] = useState(undefined as BBox | undefined);
const { data,error } = useSwr(API_URL,fetcher);
const coords: Array<ParkingData> = data && !error ? data.data : [];
const points: Array<PointFeature<GeoJsonProperties>> = coords.map(pd => ({
type: "Feature",properties: {
cluster: false,pdId: pd._id,category: 'test'
},geometry: { type: "Point",coordinates: [ pd.lat,pd.lng ] }
}));
const { clusters } = useSuperCluster({
points,bounds,zoom,options: { radius: 75,maxZoom: 25 }
});
当我调试 points
时,我得到如下信息:
但是,clusters
是空的。我用 bounds
属性更新视频中的 onChange
,例如:
onChange={({ zoom,bounds }) => {
setZoom(zoom);
setBounds([
bounds.nw.lng,bounds.se.lat,bounds.se.lng,bounds.nw.lat
]);
}}
那么,我做错了什么?
编辑:
我已将 supercluster
对象添加到 useSuperCluster()
解构中,如 const { clusters,supercluster } = useSuperCluster(...)
,调试后我得到以下对象:
解决方法
尝试更改此行顺序:
geometry: { type: "Point",coordinates: [ pd.lat,pd.lng ] }
到:
geometry: { type: "Point",coordinates: [ pd.lng,pd.lat ] }
显然,顺序是这样的,就我而言,我尝试了这种更改,但对我不起作用,但对您来说,它有可能起作用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。