javascript - use-supercluster 获取空数组
问题描述
在弄清楚如何处理 TypeScript 和use-supercluster库之后,我已经“让它工作”了,直到我遇到一个新问题:每当我使用useSuperCluster()
函数时,我都会得到一个空数组。
我正在遵循创作者的指南,所以我可以处理我自己的项目。
这就是我所做的:
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 ] }
显然,顺序是这样的,就我而言,我尝试了这种更改,但它对我不起作用,但对你来说,它有可能会起作用。
推荐阅读
- python - 如何在安装包 phat 时修复 microsofot Visual Studio 中的错误?
- scala - 如何使用 Intellij IDE 运行 MLlib 使用示例?
- html - 如何在 Visual Studio 代码中关闭自动格式化版本:1.35.1(系统设置)
- javascript - 如果 MySQL 数据库中不存在数据,则插入数据,
- excel - 带有可切换范围的索引和匹配
- node.js - Angular 6 应用程序调用本地主机上的 API 被 CORS 阻止
- jquery - 是否有可以在 Ajax 中使用的 if 条件?
- r - 在闪亮的信息框中显示摘要统计信息
- post - 如何在 Blogger 中创建 Next 和 Back 按钮来拆分帖子
- javascript - 获取分组数组的值索引