3
我从R中的specialPolygons对象创建一个WRT字符串。从rgeos包的writeWKT中设置精度
但是,我对输出中的数字数量感到惊讶。有没有办法减少它?
x = sp::SpatialPolygons(Srl = list(sp::Polygons(srl = list(sp::Polygon(coords = cbind(c(-19.8, -19.9, -19.9, -19.8, -19.8),c(148, 148, 148.2, 148.2, 148)))), ID = "1")), pO = 1:1)
rgeos::writeWKT(x)
这给了我:
"POLYGON ((-19.8000000000000007 148.0000000000000000, -19.8999999999999986 148.0000000000000000, -19.8999999999999986 148.1999999999999886, -19.8000000000000007 148.1999999999999886, -19.8000000000000007 148.0000000000000000))"
基于聊天我h广告与[@Spacedman](http://chat.stackoverflow.com/transcript/message/34211117#34211117),这似乎要求C级修补。 –
具体来说,这行https://gitlab.com/geos/libgeos/blob/svn-trunk/src/geom/Coordinate.cpp#L43似乎将精度设置为“17”。在那里很好的硬编码。 – Spacedman
有人发帖回答?我想一个hacky的替代方案是用正则表达式后处理'writeWKT'以丢弃不需要的有效数字...... –