From: filippov70 <fil...@gm...> - 2011-09-30 07:25:31
|
Hi everyone! I have tried to solve my problem as in the example - http://docs.geotools.org/latest/userguide/tutorial/feature/csv2shp.html http://docs.geotools.org/latest/userguide/tutorial/feature/csv2shp.html . When writing data to a file error occurs: java.io.IOException: Current fid index is null, next must be called before write (). It happens here: transaction.commit (); In debug mode, I find that the error occurs after recording the first object in the file. I apologize for my bad English (translation google). Vladislav. -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6846785.html Sent from the geotools-gt2-users mailing list archive at Nabble.com. |
From: Michael B. <mic...@gm...> - 2011-09-30 10:31:26
|
Hi Vladislav, I have just checked the csv2shp tutorial application and it is working ok. Please post the complete error trace to the list so we can check it out. Michael On 30 September 2011 17:25, filippov70 <fil...@gm...> wrote: > Hi everyone! > > I have tried to solve my problem as in the example - > http://docs.geotools.org/latest/userguide/tutorial/feature/csv2shp.html > http://docs.geotools.org/latest/userguide/tutorial/feature/csv2shp.html . > > When writing data to a file error occurs: java.io.IOException: Current fid > index is null, next must be called before write (). > It happens here: > transaction.commit (); > In debug mode, I find that the error occurs after recording the first object > in the file. > > > I apologize for my bad English (translation google). > > Vladislav. > > -- > View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6846785.html > Sent from the geotools-gt2-users mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > All of the data generated in your IT infrastructure is seriously valuable. > Why? It contains a definitive record of application performance, security > threats, fraudulent activity, and more. Splunk takes this data and makes > sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-d2dcopy2 > _______________________________________________ > Geotools-gt2-users mailing list > Geo...@li... > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users > |
From: Jody G. <jod...@gm...> - 2011-09-30 12:53:50
|
Not sure; can you provide a stack trace? In general we need: 1) to call "next()" to get a feature which we can fill with the new values. 2) to call "write()" to write those values out to disk I would recommend using a transaction for this kind of work; so when you call "commit" it can write the shapefile file out in one go. If you don't do this (i.e. use AUTO_COMMIT) it writes out the whole shapefile file each and every time you call write(). -- Jody Garnett On Friday, 30 September 2011 at 5:25 PM, filippov70 wrote: > Hi everyone! > > I have tried to solve my problem as in the example - > http://docs.geotools.org/latest/userguide/tutorial/feature/csv2shp.html > http://docs.geotools.org/latest/userguide/tutorial/feature/csv2shp.html . > > When writing data to a file error occurs: java.io.IOException: Current fid > index is null, next must be called before write (). > It happens here: > transaction.commit (); > In debug mode, I find that the error occurs after recording the first object > in the file. > > > I apologize for my bad English (translation google). > > Vladislav. > > -- > View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6846785.html > Sent from the geotools-gt2-users mailing list archive at Nabble.com (http://Nabble.com). > > ------------------------------------------------------------------------------ > All of the data generated in your IT infrastructure is seriously valuable. > Why? It contains a definitive record of application performance, security > threats, fraudulent activity, and more. Splunk takes this data and makes > sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-d2dcopy2 > _______________________________________________ > Geotools-gt2-users mailing list > Geo...@li... (mailto:Geo...@li...) > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users |
From: filippov70 <fil...@gm...> - 2011-10-02 15:30:37
|
ОК, java.io.IOException: Current fid index is null, next must be called before write() at org.geotools.data.shapefile.indexed.IndexedFidWriter.write(IndexedFidWriter.java:251) at org.geotools.data.shapefile.indexed.IndexedShapefileFeatureWriter.write(IndexedShapefileFeatureWriter.java:101) at org.geotools.data.shapefile.ShapefileFeatureWriter.close(ShapefileFeatureWriter.java:230) at org.geotools.data.shapefile.indexed.IndexedShapefileFeatureWriter.close(IndexedShapefileFeatureWriter.java:109) at org.geotools.data.TransactionStateDiff.applyDiff(TransactionStateDiff.java:276) at org.geotools.data.TransactionStateDiff.commit(TransactionStateDiff.java:147) at org.geotools.data.DefaultTransaction.commit(DefaultTransaction.java:182) at org.tomskgislab.landprocessor.MainForm.SaveToShape(MainForm.java:295) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662) at org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) at java.awt.Component.processMouseEvent(Component.java:6504) at javax.swing.JComponent.processMouseEvent(JComponent.java:3321) at java.awt.Component.processEvent(Component.java:6269) at java.awt.Container.processEvent(Container.java:2229) at java.awt.Component.dispatchEventImpl(Component.java:4860) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4686) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) at java.awt.Container.dispatchEventImpl(Container.java:2273) at java.awt.Window.dispatchEventImpl(Window.java:2713) at java.awt.Component.dispatchEvent(Component.java:4686) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) at java.awt.EventQueue$4.run(EventQueue.java:680) at java.awt.EventQueue$4.run(EventQueue.java:678) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:677) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) Caused by: java.lang.IllegalArgumentException: Ring has fewer than 3 points, so orientation cannot be determined at com.vividsolutions.jts.algorithm.CGAlgorithms.isCCW(CGAlgorithms.java:167) at org.geotools.data.shapefile.shp.JTSUtilities.makeGoodShapePolygon(JTSUtilities.java:207) at org.geotools.data.shapefile.shp.JTSUtilities.makeGoodShapeMultiPolygon(JTSUtilities.java:239) at org.geotools.data.shapefile.shp.JTSUtilities.convertToCollection(JTSUtilities.java:299) at org.geotools.data.shapefile.ShapefileFeatureWriter.write(ShapefileFeatureWriter.java:382) at org.geotools.data.shapefile.indexed.IndexedShapefileFeatureWriter.write(IndexedShapefileFeatureWriter.java:102) at org.geotools.data.TransactionStateDiff.applyDiff(TransactionStateDiff.java:256) ... 48 more but, in my code: if (Coorinates.size() > 2) {..... -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6852820.html Sent from the geotools-gt2-users mailing list archive at Nabble.com. |
From: Michael B. <mic...@gm...> - 2011-10-10 09:01:48
|
Perhaps you could post the WKT representation of one of the Polygons that you think is causing the problem. Then I, or others here, might be able to spot what is going on. If you are not certain which are the problem polygons you could also try calling the isValid() method on each of them. Michael On 10 October 2011 19:29, filippov70 <fil...@gm...> wrote: > Obviously, now I'm using polygon to determine the area. > But the problem is not solved, all the same error. Occurs when a written > shapefile that contains the polygon which contains a hole. > |
From: filippov70 <fil...@gm...> - 2011-10-10 09:56:51
|
Yes, some multipolygons not valid. Here they are: MULTIPOLYGON (((2283017.17 519163.53, 2283148.29 519197.73, 2283148.29 519197.73, 2283201.92 519264.53, 2283201.92 519264.53, 2283248.03 519284.69, 2283248.03 519284.69, 2283333.15 519306.07, 2283333.15 519306.07, 2283375.37 519329.65, 2283375.37 519329.65, 2283375.37 519309.2, 2283375.37 519309.2, 2283381.81 519305.09, 2283381.81 519305.09, 2283410.61 519300.58, 2283410.61 519300.58, 2283422.09 519287.18, 2283422.09 519287.18, 2283420.17 519280.65, 2283420.17 519280.65, 2283406.76 519272.36, 2283406.76 519272.36, 2283327.21 519268.98, 2283327.21 519268.98, 2283326.38 519241.15, 2283326.38 519241.15, 2283314.27 519237.55, 2283314.27 519237.55, 2283295.32 519246.85, 2283295.32 519246.85, 2283266.95 519244.46, 2283266.95 519244.46, 2283239.75 519246.8, 2283239.75 519246.8, 2283196.01 519229.01, 2283196.01 519229.01, 2283166.45 519197.02, 2283166.45 519197.02, 2283172.36 519188.74, 2283172.36 519188.74, 2283235.02 519216.02, 2283235.02 519216.02, 2283259.85 519212.49, 2283259.85 519212.49, 2283288.23 519224.35, 2283288.23 519224.35, 2283388.72 519227.99, 2283388.72 519227.99 , 2283407.64 519220.9, 2283407.64 519220.9, 2283477.39 519209.13, 2283477.39 519209.13, 519187.63 2283545, 2283545 519187.63, 2283574.92 519174.81, 2283574.92 519174.81, 2283577.92 519169.68, 2283577.92 519169.68, 2283590.6 519164.69, 2283590.6 519164.69, 2283590.6 519147.94, 2283590.6 519147.94, 2283623.45 519091.61, 2283623.45 519091.61, 2283638.46 519076.6, 2283638.46 519076.6, 2283642.29 519067.02, 2283642.29 519067.02, 2283636.55 519030.59, 2283636.55 519030.59, 2283619.72 519023.09, 2283619.72 519023.09, 2283619.72 519007.82, 2283619.72 519007.82, 2283652.3 518967.11, 2283652.3 518967.11, 2283774.48 518861.21, 2283774.48 518861.21, 2283778.26 518819.94, 2283778.26 518819.94, 2283755.28 518810.33, 2283755.28 518810.33, 2283724.66 518831.37, 2283724.66 518831.37, 2283674.86 518883.07, 2283674.86 518883.07, 2283607.12 518923.67, 2283607.12 518923.67, 2283579.59 518922.16, 2283579.59 518922.16, 2283573.38 518913.63, 2283573.38 518913.63, 2283542.75 518921.26, 2283542.75 518921.26, 2283487.38 518967.95, 2283487.38 518967.95, 2283475.42 518971.27, 2283475.42 518971.27 , 2283439.36 518961.4, 2283439.36 518961.4, 2283361.29 518983.14, 2283361.29 518983.14, 2283218.3 519052.19, 2283218.3 519052.19, 2283180.67 519078.77, 2283180.67 519078.77, 2283119.37 519102.89, 2283119.37 519102.89, 2283066.63 519127.59, 2283066.63 519127.59, 2283017.17 519163.53, 2283017.17 519163.53), (2283091.96 517738.07, 2283093.86 517739.44 , 2283093.86 517739.44, 2283095.24 517737.54, 2283095.24 517737.54, 2283093.33 517736.16, 2283093.33 517736.16, 2283091.96 517738.07, 2283091.96 517738.07), (2283006.59 517767.69, 2283158.33 517793.88, 2283158.33 517793.88, 2283201.05 517791.95, 2283201.05 517791.95, 2283230.51 517763.45, 2283230.51 517763.45, 2283167.66 517730.95, 2283167.66 517730.95 , 2283087.62 517718.1, 2283087.62 517718.1, 2283045.38 517714.13, 2283045.38 517714.13, 2283013.96 517706.73, 2283013.96 517706.73, 2283006.59 517767.69, 2283006.59 517767.69))) -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6876362.html Sent from the geotools-gt2-users mailing list archive at Nabble.com. |
From: Jody G. <jod...@gm...> - 2011-10-02 23:25:18
|
Well that is looking more like a bug; since it is happening inside the "commit" and not inside code you control. Is there any chance that the "fid" (or FeatureId) is null (in the feature collection you are writing out?) The code looks like the following: /** * Writes the current fidIndex. Writes to the same place in the file each time. Only * {@link #next()} moves forward in the file. * * @throws IOException * @see #next() * @see #remove() */ public void write() throws IOException { if (current == -1) throw new IOException("Current fid index is null, next must be called before write()"); .... Which eventually was called from the commit() method like follows: public void close() throws IOException { if (featureReader == null) { throw new IOException("Writer closed"); } // make sure to write the last feature... if (currentFeature != null) { write(); } So something must be odd here? a) is your feature ID null? Or did something fail writing this out? b) did you get the feature collection from a database or something? If so you sometimes need to preprocess the data to match shapefile abilities (string length; geometry type; etc...) c) is your feature collection empty? Next step is to report an issue; with the detail you have provided in this email thread; and create a test case showing the problem so a developer can work on it. If you are up against a deadline I encourage you to look at our support options to get this moving. Cheers-- Jody Garnett On Monday, 3 October 2011 at 1:30 AM, filippov70 wrote: > ОК, > java.io.IOException: Current fid index is null, next must be called before > write() > at > org.geotools.data.shapefile.indexed.IndexedFidWriter.write(IndexedFidWriter.java:251) > at > org.geotools.data.shapefile.indexed.IndexedShapefileFeatureWriter.write(IndexedShapefileFeatureWriter.java:101) > at > org.geotools.data.shapefile.ShapefileFeatureWriter.close(ShapefileFeatureWriter.java:230) > at > org.geotools.data.shapefile.indexed.IndexedShapefileFeatureWriter.close(IndexedShapefileFeatureWriter.java:109) > at > org.geotools.data.TransactionStateDiff.applyDiff(TransactionStateDiff.java:276) > at > org.geotools.data.TransactionStateDiff.commit(TransactionStateDiff.java:147) > at org.geotools.data.DefaultTransaction.commit(DefaultTransaction.java:182) > at org.tomskgislab.landprocessor.MainForm.SaveToShape(MainForm.java:295) |
From: Michael B. <mic...@gm...> - 2011-10-03 00:51:23
|
Jody, I think Vladislav is just starting out with GeoTools, plus he told us that English is not his language, so your reply might seem a bit mysterious :) Vladislav, can you post your code to the list please or if it is very large post it to Jody or myself privately. Michael On 3 October 2011 10:25, Jody Garnett <jod...@gm...> wrote: > Well that is looking more like a bug; since it is happening inside the > "commit" and not inside code you control. > Is there any chance that the "fid" (or FeatureId) is null (in the feature > collection you are writing out?) > The code looks like the following: > /** > * Writes the current fidIndex. Writes to the same place in the file > each time. Only > * {@link #next()} moves forward in the file. > * > * @throws IOException > * @see #next() > * @see #remove() > */ > public void write() throws IOException { > if (current == -1) > throw new IOException("Current fid index is null, next must be > called before write()"); > .... > Which eventually was called from the commit() method like follows: > public void close() throws IOException { > if (featureReader == null) { > throw new IOException("Writer closed"); > } > // make sure to write the last feature... > if (currentFeature != null) { > write(); > } > So something must be odd here? > a) is your feature ID null? Or did something fail writing this out? > b) did you get the feature collection from a database or something? If so > you sometimes need to preprocess the data to match shapefile abilities > (string length; geometry type; etc...) > c) is your feature collection empty? > Next step is to report an issue; with the detail you have provided in this > email thread; and create a test case showing the problem so a developer can > work on it. If you are up against a deadline I encourage you to look at our > support options to get this moving. > Cheers > -- > Jody Garnett > > On Monday, 3 October 2011 at 1:30 AM, filippov70 wrote: > > ОК, > java.io.IOException: Current fid index is null, next must be called before > write() > at > org.geotools.data.shapefile.indexed.IndexedFidWriter.write(IndexedFidWriter.java:251) > at > org.geotools.data.shapefile.indexed.IndexedShapefileFeatureWriter.write(IndexedShapefileFeatureWriter.java:101) > at > org.geotools.data.shapefile.ShapefileFeatureWriter.close(ShapefileFeatureWriter.java:230) > at > org.geotools.data.shapefile.indexed.IndexedShapefileFeatureWriter.close(IndexedShapefileFeatureWriter.java:109) > at > org.geotools.data.TransactionStateDiff.applyDiff(TransactionStateDiff.java:276) > at > org.geotools.data.TransactionStateDiff.commit(TransactionStateDiff.java:147) > at org.geotools.data.DefaultTransaction.commit(DefaultTransaction.java:182) > at org.tomskgislab.landprocessor.MainForm.SaveToShape(MainForm.java:295) > > > ------------------------------------------------------------------------------ > All of the data generated in your IT infrastructure is seriously valuable. > Why? It contains a definitive record of application performance, security > threats, fraudulent activity, and more. Splunk takes this data and makes > sense of it. IT sense. And common sense. > http://p.sf.net/sfu/splunk-d2dcopy2 > _______________________________________________ > Geotools-gt2-users mailing list > Geo...@li... > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users > > |
From: Michael B. <mic...@gm...> - 2011-10-11 03:03:48
|
Hello, That polygon has a self-intersecting outer shell. This image shows the lower (southern) end of the polygon. There is a vertex way off to the north-west that is causing the problem... http://imagebin.org/178408 Michael On 10 October 2011 20:56, filippov70 <fil...@gm...> wrote: > Yes, some multipolygons not valid. > Here they are: > MULTIPOLYGON (((2283017.17 519163.53, 2283148.29 519197.73, 2283148.29 > 519197.73, 2283201.92 519264.53, 2283201.92 519264.53, 2283248.03 519284.69, > 2283248.03 519284.69, 2283333.15 519306.07, 2283333.15 519306.07, 2283375.37 > 519329.65, 2283375.37 519329.65, 2283375.37 519309.2, 2283375.37 519309.2, > 2283381.81 519305.09, 2283381.81 519305.09, 2283410.61 519300.58, 2283410.61 > 519300.58, 2283422.09 519287.18, 2283422.09 519287.18, 2283420.17 519280.65, > 2283420.17 519280.65, 2283406.76 519272.36, 2283406.76 519272.36, 2283327.21 > 519268.98, 2283327.21 519268.98, 2283326.38 519241.15, 2283326.38 519241.15, > 2283314.27 519237.55, 2283314.27 519237.55, 2283295.32 519246.85, 2283295.32 > 519246.85, 2283266.95 519244.46, 2283266.95 519244.46, 2283239.75 519246.8, > 2283239.75 519246.8, 2283196.01 519229.01, 2283196.01 519229.01, 2283166.45 > 519197.02, 2283166.45 519197.02, 2283172.36 519188.74, 2283172.36 519188.74, > 2283235.02 519216.02, 2283235.02 519216.02, 2283259.85 519212.49, 2283259.85 > 519212.49, 2283288.23 519224.35, 2283288.23 519224.35, 2283388.72 519227.99, > 2283388.72 519227.99 , 2283407.64 519220.9, 2283407.64 519220.9, 2283477.39 > 519209.13, 2283477.39 519209.13, 519187.63 2283545, 2283545 519187.63, > 2283574.92 519174.81, 2283574.92 519174.81, 2283577.92 519169.68, 2283577.92 > 519169.68, 2283590.6 519164.69, 2283590.6 519164.69, 2283590.6 519147.94, > 2283590.6 519147.94, 2283623.45 519091.61, 2283623.45 519091.61, 2283638.46 > 519076.6, 2283638.46 519076.6, 2283642.29 519067.02, 2283642.29 519067.02, > 2283636.55 519030.59, 2283636.55 519030.59, 2283619.72 519023.09, 2283619.72 > 519023.09, 2283619.72 519007.82, 2283619.72 519007.82, 2283652.3 518967.11, > 2283652.3 518967.11, 2283774.48 518861.21, 2283774.48 518861.21, 2283778.26 > 518819.94, 2283778.26 518819.94, 2283755.28 518810.33, 2283755.28 518810.33, > 2283724.66 518831.37, 2283724.66 518831.37, 2283674.86 518883.07, 2283674.86 > 518883.07, 2283607.12 518923.67, 2283607.12 518923.67, 2283579.59 518922.16, > 2283579.59 518922.16, 2283573.38 518913.63, 2283573.38 518913.63, 2283542.75 > 518921.26, 2283542.75 518921.26, 2283487.38 518967.95, 2283487.38 518967.95, > 2283475.42 518971.27, 2283475.42 518971.27 , 2283439.36 518961.4, 2283439.36 > 518961.4, 2283361.29 518983.14, 2283361.29 518983.14, 2283218.3 519052.19, > 2283218.3 519052.19, 2283180.67 519078.77, 2283180.67 519078.77, 2283119.37 > 519102.89, 2283119.37 519102.89, 2283066.63 519127.59, 2283066.63 519127.59, > 2283017.17 519163.53, 2283017.17 519163.53), (2283091.96 517738.07, > 2283093.86 517739.44 , 2283093.86 517739.44, 2283095.24 517737.54, > 2283095.24 517737.54, 2283093.33 517736.16, 2283093.33 517736.16, 2283091.96 > 517738.07, 2283091.96 517738.07), (2283006.59 517767.69, 2283158.33 > 517793.88, 2283158.33 517793.88, 2283201.05 517791.95, 2283201.05 517791.95, > 2283230.51 517763.45, 2283230.51 517763.45, 2283167.66 517730.95, 2283167.66 > 517730.95 , 2283087.62 517718.1, 2283087.62 517718.1, 2283045.38 517714.13, > 2283045.38 517714.13, 2283013.96 517706.73, 2283013.96 517706.73, 2283006.59 > 517767.69, 2283006.59 517767.69))) > > -- > View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6876362.html > Sent from the geotools-gt2-users mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > Geotools-gt2-users mailing list > Geo...@li... > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users > |
From: filippov70 <fil...@gm...> - 2011-10-11 03:31:17
|
Thank you for the visualization of my data. But I did not add such polygons in SimpleFeatureCollection: mp = new MultiPolygon (pa, geometryFactory); if (mp.isValid ()) { parcelBuilder.add ("Polygon"); parcelBuilder.add (mp); parcelBuilder.add (cadastreNumber); parcelBuilder.add (utilization); SimpleFeature feature = parcelBuilder.buildFeature (null); if (feature! = null) { parcelCollection.add (feature); } The problem remained. Why the current FID == -1? -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6879516.html Sent from the geotools-gt2-users mailing list archive at Nabble.com. |
From: filippov70 <fil...@gm...> - 2011-10-03 03:00:37
|
Thank you very much for taking part in the solution to my problem! I take the data on the coordinates of the XML-file. In SAX parser, I create the geometry and the objects themselves: parcelBuilder.add ("Polygon"); parcelBuilder.add (mp); / / MultiPolygon parcelBuilder.add (cadastreNumber); SimpleFeature feature = parcelBuilder.buildFeature (null); if (feature! = null) { parcelCollection.add (feature); } ====================================== case Parcel : builder.length(150).add("Name", String.class); builder.setName("Polygon"); builder.add("Geometry", MultiPolygon.class); builder.length(25).add("CNumber", String.class); PARCEL_TYPE = CadastreFeatureBuilder.createFeatureType (crs, CadastreFeatureBuilder.CadastreFeatureTypes.Parcel); SimpleFeatureBuilder parcelBuilder = new SimpleFeatureBuilder (PARCEL_TYPE); ================================================== ========== if (parcelCollection.size ()> 0) { File PolygonFile = chooser.getSelectedFile (); File RenameParcelFile = new File (PolygonFile.getPath (). ReplaceAll (". Shp", "") + "_Parcel" + ". Shp"); PolygonFile.renameTo (RenameParcelFile); ShapefileDataStoreFactory polygonDataStoreFactory = new ShapefileDataStoreFactory (); Map <String, Serializable> paramsPolygon = new HashMap <String, Serializable> (); paramsPolygon.put ("url", RenameParcelFile.toURI (). toURL ()); paramsPolygon.put ("create spatial index", Boolean.TRUE); ShapefileDataStore polygonDataStore = (ShapefileDataStore) polygonDataStoreFactory.createNewDataStore (paramsPolygon); polygonDataStore.createSchema (PARCEL_TYPE); Transaction transactionParcel = new DefaultTransaction ("create"); String ParcelTypeName = polygonDataStore.getTypeNames () [0]; SimpleFeatureSource ParcelfeatureSource = polygonDataStore.getFeatureSource (ParcelTypeName); if (ParcelfeatureSource instanceof SimpleFeatureStore) { SimpleFeatureStore ParcelFeatureStore = (SimpleFeatureStore) ParcelfeatureSource; ParcelFeatureStore.setTransaction (transactionParcel); try { ParcelFeatureStore.addFeatures (parcelCollection); transactionParcel.commit (); } Catch (Exception ex) { App.Log.severe ("Failed to add a shapefile." + ex.toString () + "\ r \ nOtkat changes in the shapefile, but the file is created."); transactionParcel.rollback (); } Finally { transactionParcel.close (); App.Log.fine ("Saved" + ParcelTypeName); } } Else { App.Log.warning (ParcelTypeName + "does not support read / write"); / / System.exit (1); } } -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6853789.html Sent from the geotools-gt2-users mailing list archive at Nabble.com. |
From: filippov70 <fil...@gm...> - 2011-10-03 05:51:40
|
Interestingly, I have not changed anything, has launched a project as usual .... and works! While tested on three original XML-files... -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6853952.html Sent from the geotools-gt2-users mailing list archive at Nabble.com. |
From: Jody G. <jod...@gm...> - 2011-10-03 06:13:15
|
So yeah it comes back to your actual data; I think some of it may be causing trouble? Put a break point in the commit() method and see if you can look at the feature that is causing the trouble? Aside: SimpleFeatureSource ParcelfeatureSource = polygonDataStore.getFeatureSource (ParcelTypeName); Normally we don't use a capital letter for a local variable - so "parcelFeatureSource" would be the normal name for this thing. -- Jody Garnett On Monday, 3 October 2011 at 1:00 PM, filippov70 wrote: > Thank you very much for taking part in the solution to my problem! > > I take the data on the coordinates of the XML-file. > In SAX parser, I create the geometry and the objects themselves: > > parcelBuilder.add ("Polygon"); > parcelBuilder.add (mp); / / MultiPolygon > parcelBuilder.add (cadastreNumber); > SimpleFeature feature = parcelBuilder.buildFeature (null); > if (feature! = null) { > parcelCollection.add (feature); > } > > ====================================== > > case Parcel : > builder.length(150).add("Name", String.class); > builder.setName("Polygon"); > builder.add("Geometry", MultiPolygon.class); > builder.length(25).add("CNumber", String.class); > > > PARCEL_TYPE = CadastreFeatureBuilder.createFeatureType (crs, > CadastreFeatureBuilder.CadastreFeatureTypes.Parcel); > SimpleFeatureBuilder parcelBuilder = new SimpleFeatureBuilder (PARCEL_TYPE); > > ================================================== ========== > > if (parcelCollection.size ()> 0) { > File PolygonFile = chooser.getSelectedFile (); > File RenameParcelFile = new File (PolygonFile.getPath (). > ReplaceAll (". Shp", "") + "_Parcel" + ". Shp"); > PolygonFile.renameTo (RenameParcelFile); > ShapefileDataStoreFactory polygonDataStoreFactory = new > ShapefileDataStoreFactory (); > > Map <String, Serializable> paramsPolygon = new HashMap > <String, Serializable> (); > paramsPolygon.put ("url", RenameParcelFile.toURI (). toURL ()); > paramsPolygon.put ("create spatial index", Boolean.TRUE); > > ShapefileDataStore polygonDataStore = (ShapefileDataStore) > polygonDataStoreFactory.createNewDataStore (paramsPolygon); > polygonDataStore.createSchema (PARCEL_TYPE); > Transaction transactionParcel = new DefaultTransaction > ("create"); > > String ParcelTypeName = polygonDataStore.getTypeNames () [0]; > SimpleFeatureSource ParcelfeatureSource = > polygonDataStore.getFeatureSource (ParcelTypeName); > > if (ParcelfeatureSource instanceof SimpleFeatureStore) { > SimpleFeatureStore ParcelFeatureStore = (SimpleFeatureStore) > ParcelfeatureSource; > > ParcelFeatureStore.setTransaction (transactionParcel); > try { > ParcelFeatureStore.addFeatures (parcelCollection); > transactionParcel.commit (); > > } Catch (Exception ex) { > App.Log.severe ("Failed to add a shapefile." + > ex.toString () + "\ r \ nOtkat changes in the > shapefile, but the file is created."); > transactionParcel.rollback (); > > } Finally { > transactionParcel.close (); > App.Log.fine ("Saved" + ParcelTypeName); > } > } Else { > App.Log.warning (ParcelTypeName + "does not support read / > write"); > / / System.exit (1); > } > } > > > -- > View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6853789.html > Sent from the geotools-gt2-users mailing list archive at Nabble.com (http://Nabble.com). > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > Geotools-gt2-users mailing list > Geo...@li... (mailto:Geo...@li...) > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users |
From: Michael B. <mic...@gm...> - 2011-10-11 03:40:25
|
No idea - sorry. I haven't experienced this error in my own work and don't recall it being reported previously. Since neither Jody or I have been able to help you so far all I can suggest is for you to track the writing of a feature to shapefile with your debugger and see if you can isolate the point at which the feature id is being set (or not set) and then get back to the list with a code trace. Sorry I can't be more helpful. Michael On 11 October 2011 14:31, filippov70 <fil...@gm...> wrote: > Thank you for the visualization of my data. > But I did not add such polygons in SimpleFeatureCollection: > > mp = new MultiPolygon (pa, geometryFactory); > if (mp.isValid ()) { > parcelBuilder.add ("Polygon"); > parcelBuilder.add (mp); > parcelBuilder.add (cadastreNumber); > parcelBuilder.add (utilization); > SimpleFeature feature = parcelBuilder.buildFeature > (null); > if (feature! = null) { > parcelCollection.add (feature); > } > > The problem remained. Why the current FID == -1? > > -- > View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6879516.html > Sent from the geotools-gt2-users mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2d-oct > _______________________________________________ > Geotools-gt2-users mailing list > Geo...@li... > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users > |
From: filippov70 <fil...@gm...> - 2011-10-03 06:43:31
|
I will try to recreate this bug, test files > 500 pieces! Previously, this problem was for me, as I mistakenly assigned CRS (/ / newDataStore.forceSchemaCRS (CRS.decode ("EPSG: 28 415 "));) in ShapefileDataStore. Thank you for indication of errors in syntax, of course, is a local variable. Thank you for your support! -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6854010.html Sent from the geotools-gt2-users mailing list archive at Nabble.com. |
From: filippov70 <fil...@gm...> - 2011-10-11 04:08:12
|
Thank you very much, your assistance conditional has been very helpful to me. -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6879547.html Sent from the geotools-gt2-users mailing list archive at Nabble.com. |
From: filippov70 <fil...@gm...> - 2011-10-11 16:34:47
|
I solved the problem. were too long strings in russian language are to record in the DBF Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 253 at java.lang.StringBuffer.charAt(StringBuffer.java:179) at org.geotools.data.shapefile.dbf.DbaseFileWriter$FieldFormatter.getFieldString(Dbas at org.geotools.data.shapefile.dbf.DbaseFileWriter.fieldBytes(DbaseFileWriter.java:23 at org.geotools.data.shapefile.dbf.DbaseFileWriter.write(DbaseFileWriter.java:205) at org.geotools.data.shapefile.ShapefileFeatureWriter.write(ShapefileFeatureWriter.ja at org.geotools.data.shapefile.indexed.IndexedShapefileFeatureWriter.write(IndexedSha at org.geotools.data.TransactionStateDiff.applyDiff(TransactionStateDiff.java:256) public String getFieldString(int size, String s) { try { buffer.replace(0, size, emptyString); buffer.setLength(size); // international characters must be accounted for so size != length. int maxSize = size; -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6881670.html Sent from the geotools-gt2-users mailing list archive at Nabble.com. |
From: Michael B. <mic...@gm...> - 2011-10-12 00:17:23
|
Great to hear that you found the cause of the problem. Thanks very much for posting it to the list - it's good to have ones like this in the archives. Michael On 12 October 2011 03:34, filippov70 <fil...@gm...> wrote: > I solved the problem. > were too long strings in russian language are to record in the DBF > > Caused by: java.lang.StringIndexOutOfBoundsException: String index out of > range: 253 > at java.lang.StringBuffer.charAt(StringBuffer.java:179) > at > org.geotools.data.shapefile.dbf.DbaseFileWriter$FieldFormatter.getFieldString(Dbas > at > org.geotools.data.shapefile.dbf.DbaseFileWriter.fieldBytes(DbaseFileWriter.java:23 > at > org.geotools.data.shapefile.dbf.DbaseFileWriter.write(DbaseFileWriter.java:205) > at > org.geotools.data.shapefile.ShapefileFeatureWriter.write(ShapefileFeatureWriter.ja > at > org.geotools.data.shapefile.indexed.IndexedShapefileFeatureWriter.write(IndexedSha > at > org.geotools.data.TransactionStateDiff.applyDiff(TransactionStateDiff.java:256) > > public String getFieldString(int size, String s) { > try { > buffer.replace(0, size, emptyString); > buffer.setLength(size); > // international characters must be accounted for so size != > length. > int maxSize = size; > > -- > View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6881670.html > Sent from the geotools-gt2-users mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2d-oct > _______________________________________________ > Geotools-gt2-users mailing list > Geo...@li... > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users > |
From: filippov70 <fil...@gm...> - 2011-10-10 06:39:16
|
Hi! I understand the problem. In the source file "holes" in the polygon, as well as the shell is not in order, for example, the coordinates of the shell did not go to the beginning of the description of the landfill. I decided to determine the maximum area among all of the Rings: double maxArea = MainRing.getArea(); but the area == 0.0; isClosed() == true; I do not understand why it is so, the length of the ring is, and area 0. maybe it's because of the orientation of the ring, although the documentation for the JTS "The SFS does not specify a requirement on the orientation of a LinearRing. JTS follows this by allowing LinearRings to be oriented either clockwise or counter-clockwise." -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6875903.html Sent from the geotools-gt2-users mailing list archive at Nabble.com. |
From: Michael B. <mic...@gm...> - 2011-10-10 07:12:08
|
Hello, A LinearRing will always have an area of 0 because it is linear, not polygonal. Having the start and end coordinates the same gives you a closed ring but unless you create a Polygon or MultiPolygon with it you still just have a line. Michael On 10 October 2011 17:39, filippov70 <fil...@gm...> wrote: > Hi! > > I understand the problem. > In the source file "holes" in the polygon, as well as the shell is not in > order, for example, the coordinates of the shell did not go to the beginning > of the description of the landfill. > I decided to determine the maximum area among all of the Rings: > > double maxArea = MainRing.getArea(); > but the area == 0.0; > > isClosed() == true; > I do not understand why it is so, the length of the ring is, and area 0. > maybe it's because of the orientation of the ring, although the > documentation for the JTS > "The SFS does not specify a > requirement on the orientation of a LinearRing. JTS follows this by > allowing LinearRings to > be oriented either clockwise or counter-clockwise." > > > -- > View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6875903.html > Sent from the geotools-gt2-users mailing list archive at Nabble.com. > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > Geotools-gt2-users mailing list > Geo...@li... > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users > |
From: filippov70 <fil...@gm...> - 2011-10-10 08:29:16
|
Obviously, now I'm using polygon to determine the area. But the problem is not solved, all the same error. Occurs when a written shapefile that contains the polygon which contains a hole. Current fid index is null, next must be called before write() Откат изменений в shapefile, но файл создан. Stack trace: org.geotools.data.shapefile.indexed.IndexedFidWriter.write(IndexedFidWriter.java:251) org.geotools.data.shapefile.indexed.IndexedShapefileFeatureWriter.write(IndexedShapefileFeatureWriter.java:101) org.geotools.data.shapefile.ShapefileFeatureWriter.close(ShapefileFeatureWriter.java:230) org.geotools.data.shapefile.indexed.IndexedShapefileFeatureWriter.close(IndexedShapefileFeatureWriter.java:109) org.geotools.data.TransactionStateDiff.applyDiff(TransactionStateDiff.java:276) org.geotools.data.TransactionStateDiff.commit(TransactionStateDiff.java:147) org.geotools.data.DefaultTransaction.commit(DefaultTransaction.java:182) org.tomskgislab.landprocessor.MainForm.SaveToShape(MainForm.java:296) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) java.lang.reflect.Method.invoke(Method.java:601) org.jdesktop.application.ApplicationAction.noProxyActionPerformed(ApplicationAction.java:662) org.jdesktop.application.ApplicationAction.actionPerformed(ApplicationAction.java:698) javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) javax.swing.AbstractButton.doClick(AbstractButton.java:376) javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833) javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877) java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289) java.awt.Component.processMouseEvent(Component.java:6504) javax.swing.JComponent.processMouseEvent(JComponent.java:3321) java.awt.Component.processEvent(Component.java:6269) java.awt.Container.processEvent(Container.java:2229) java.awt.Component.dispatchEventImpl(Component.java:4860) java.awt.Container.dispatchEventImpl(Container.java:2287) java.awt.Component.dispatchEvent(Component.java:4686) java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832) java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492) java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422) java.awt.Container.dispatchEventImpl(Container.java:2273) java.awt.Window.dispatchEventImpl(Window.java:2713) java.awt.Component.dispatchEvent(Component.java:4686) java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707) java.awt.EventQueue.access$000(EventQueue.java:101) java.awt.EventQueue$3.run(EventQueue.java:666) java.awt.EventQueue$3.run(EventQueue.java:664) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87) java.awt.EventQueue$4.run(EventQueue.java:680) java.awt.EventQueue$4.run(EventQueue.java:678) java.security.AccessController.doPrivileged(Native Method) java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) java.awt.EventQueue.dispatchEvent(EventQueue.java:677) java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) java.awt.EventDispatchThread.run(EventDispatchThread.java:90) -- View this message in context: http://osgeo-org.1803224.n2.nabble.com/writing-shapefile-problem-tp6846785p6876182.html Sent from the geotools-gt2-users mailing list archive at Nabble.com. |