파일에서 일부 지리 정보를 읽으려고합니다. Java에서 geotools 패키지를 사용하고 있습니다. 나는 geodata를 kml, gml 및 .shp로 사용할 수 있으며, 꽤 큰 파일입니다. 외부 브론 출신이며 올바르게 포맷되었습니다.JTS + reading geodata : 포인트 수는 0 또는> 3이어야합니다.
도구를 읽고 싶을 때, GeoTools는 JTS를 사용합니다. 또한 JTS 직접 작업을 시도했지만 동일한 오류 메시지가 나타납니다. 내가 얻을 오류는 다음과 같습니다.
java.lang.IllegalArgumentException: Number of points must be 0 or >3
at com.vividsolutions.jts.geom.LinearRing.validateConstruction(LinearRing.java:98)
at com.vividsolutions.jts.geom.LinearRing.<init>(LinearRing.java:90)
at com.vividsolutions.jts.geom.GeometryFactory.createLinearRing(GeometryFactory.java:324)
at com.vividsolutions.jts.geom.GeometryFactory.createLinearRing(GeometryFactory.java:314)
이 오류는 파일의 중간에 나옵니다. 나는 모든 파일을 수동으로 검사했다 : 모든 "선형"은 3 점 이상을 가지고있다. 그것은 또한 내가 읽으려고하는 파일에 상관 없습니다.
코드하십시오 KML 파일
<MultiGeometry>
<Polygon>
<altitudeMode>
relativeToGround
</altitudeMode>
<outerBoundaryIs>
<LinearRing>
<coordinates>
5.301275,50.883145,1 5.301244,50.883233,1 5.301302,50.88329999999999,1 5.301146,50.883552,1 5.301037,50.883757,1 5.301124,50.88386299999999,1 5.301524,50.884123,1 5.301924,50.88421500000001,1 5.302014,50.884129,1 5.301751,50.88367,1 5.301275,50.883145,1
</coordinates>
</LinearRing>
</outerBoundaryIs>
</Polygon>
<Point>
<coordinates>
5.30152,50.883681,0
</coordinates>
</Point>
</MultiGeometry>
로깅을 추가하거나 디버거에서 단계별로 구문 분석중인 내용을 정확히 볼 수 있습니까? –
또한 3 가지 형식 모두에서 같은 오류가 발생합니까? –
나는 어떻게 든 그 오류를 제거 할 수 있었다. .. 내가 뭘했는지 모른다. .. – jeanke