如何阻止D3.js从线性多边形创建无限区域
How to stop D3.js from creating infinite areas from linear polygons
我试图用D3绘制topojson特征,它们是由TileStack从PostGIS数据库生成的。小的三角形多边形倾向于简化为"线":3个点在一条直线上。如果TopoJSON是这样的,则多边形被绘制为一条线:
"arcs":[[[609,278],[-1,-1],[-1,-1],[2,2]]]
但是,如果TopoJSON是这样的:
"arcs":[[[609,278],[-2,-2],[1,1],[1,1]]]}
画出了一个带有"线形"洞的无限区域,把地图弄得一团糟。当特征为线形时,如何阻止D3创建无限区域?
您可以在此处看到TopoJSON的两种样式的效果:http://research.geodan.nl/sites/vectortiling/test/faultytile.html
这些无限特征的更大影响在这里可见:http://research.geodan.nl/sites/vectortiling/
这确实是D3中的一个bug,请参阅:https://github.com/mbostock/d3/issues/2025我通过检查多边形的面积是否为零创建了一个基本修复,如果是,则在pointInPolygon函数处返回false。Jason和Mike正在努力,所以我希望在某个时候会有一个不会创建无限多边形的D3版本:)
相关文章:
- 使用动态用户输入在 HTML5 中创建画布多边形
- 如何使用箭头创建 Openlayer 3 多边形
- 如何将 JavaScript 数组转换为可用于创建多边形线的格式
- 在谷歌地图上创建一个多边形,并使用MVC将结果保存到数据库中
- 如何防止用户使用 Google 地图绘图管理器创建自相交多边形
- 用于在 HTML 5 画布上创建 Reuleaux 多边形的函数
- 多边形的创建和显示之间的延迟
- 从xml创建多边形坐标数组
- 在正方形内创建n个角的多边形的算法(HTML5-Canvas)
- 如何阻止D3.js从线性多边形创建无限区域
- 如何在同一个谷歌地图上创建多个多边形
- 从由独立线条创建的形状创建多边形
- 在创建多边形时使用MVC数组
- 如何使用带有derby数据库的jsf在google地图上动态创建多边形
- 将双数组从WPF传递到JavaScript函数,使用GoogleAPI创建多边形
- 通过拖动鼠标在谷歌地图上创建多边形
- 如何在three.js中创建一个颜色选择器,这将允许用户改变Maya 3D模型中特定多边形的颜色
- Javascript使用按位或等于运算符|=来创建多边形
- 从routeboxer盒子创建多边形
- 从JS中的一组元素在SVG中创建一个多边形