爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2923|回复: 5

MeteoInfo 裁剪出错,求助!

[复制链接]

新浪微博达人勋

发表于 2016-12-8 19:57:37 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 shuangxi 于 2016-12-8 20:12 编辑

使用DrawMeteoData.CreateShadedLayer的方法生成等值面图层VectorLayer,然后指定shp文件,使用vectorLayer的clip方法做裁剪,结果出错(面片丢失),用MeteoInfo最新的版本测试,皆不能成功,望坛子里的高手相助……多谢!源码版主已开源,可否请高手指点一二……
所使用的Legend: 使用默认的分级,裁剪可以成功……
QQ截图20161208200349.jpg
MeteoInfo_1.1.3.4R1:

裁剪之前:
裁剪之前.jpg
裁剪之后:
裁剪之后.jpg
MeteoInfo_Java_1.3.8R2:
直接弹出异常:
MeteoInfo_Java_1.3.8R2_Files\MeteoInfo\map\bou2_4p.shp
MeteoInfo_Java_1.3.8R2_Files\MeteoInfo\map\country1.shp
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
org.meteoinfo.jts.geom.TopologyException: found non-noded intersection between LINESTRING ( 118.25000052743682 28.649999422392092, 118.25000051242779 28.649999410010576 ) and LINESTRING ( 118.25 28.649998987289905, 118.25000076519822 28.649999618530273 ) [ (118.25000051292454, 28.649999410420367, NaN) ]
at org.meteoinfo.jts.noding.FastNodingValidator.checkValid(FastNodingValidator.java:145)
at org.meteoinfo.jts.geomgraph.EdgeNodingValidator.checkValid(EdgeNodingValidator.java:94)
at org.meteoinfo.jts.geomgraph.EdgeNodingValidator.checkValid(EdgeNodingValidator.java:59)
at org.meteoinfo.jts.operation.overlay.OverlayOp.computeOverlay(OverlayOp.java:237)
at org.meteoinfo.jts.operation.overlay.OverlayOp.getResultGeometry(OverlayOp.java:189)
at org.meteoinfo.jts.operation.overlay.OverlayOp.overlayOp(OverlayOp.java:92)
at org.meteoinfo.jts.operation.overlay.snap.SnapIfNeededOverlayOp.getResultGeometry(SnapIfNeededOverlayOp.java:96)

测试样例数据:内含裁剪文件及分级图例文件
裁剪出错数据.rar (107.25 KB, 下载次数: 3)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-9 12:49:46 | 显示全部楼层
river 发表于 2016-12-9 07:53
坐等王老师来解答

解答没有用,这个要花时间去改进裁剪算法。现在最缺的就是时间。

之前是自己写的多边形裁剪算法,效果还可以,但也会有特殊的情形裁剪结果有多边形缺失(1楼最后一张图),后来引入了jts库的拓扑计算代码(Java版中),经常会出现拓扑检查不通过的情况(1楼中的异常信息)。jts库的代码非常复杂,估计修改起来难度比较大。也许重新启用并完善自己之前的裁剪算法是解决问题较好的途径。不过年底欠账太多,短期内抽不出时间来做这个。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2016-12-9 07:53:18 | 显示全部楼层
坐等王老师来解答
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-12-9 15:06:25 | 显示全部楼层
看来要等王老师慢慢改吧
密码修改失败请联系微信:mofangbao

新浪微博达人勋

0
早起挑战累计收入
发表于 2016-12-9 15:54:05 | 显示全部楼层
MeteoInfo 发表于 2016-12-9 12:49
解答没有用,这个要花时间去改进裁剪算法。现在最缺的就是时间。

之前是自己写的多边形裁剪算法,效果 ...

年底欠账太多。。。好大的实话,好像我也欠了一些
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-12-13 13:28:02 | 显示全部楼层
MeteoInfo 发表于 2016-12-9 12:49
解答没有用,这个要花时间去改进裁剪算法。现在最缺的就是时间。

之前是自己写的多边形裁剪算法,效果 ...

等王老师得空优化一下算法,我这边也尝试看一下源码
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表