A polygon whose start and end node is coincident with the start and end node of a hole within it.
--
You received this message because you are subscribed to the
Google Groups "MapInfo-L" group.To post a message to this group, send
email to mapi...@googlegroups.com
To unsubscribe from this group, go to:
http://groups.google.com/group/mapinfo-l/subscribe?hl=en
For more options, information and links to MapInfo resources (searching
archives, feature requests, to visit our Wiki, visit the Welcome page at
http://groups.google.com/group/mapinfo-l?hl=en
-- Andy Harfoot GeoData Institute University of Southampton Southampton SO17 1BJ Tel: +44 (0)23 8059 2719 Fax: +44 (0)23 8059 2849 www.geodata.soton.ac.uk
--
You received this message because you are subscribed to the
Google Groups "MapInfo-L" group.To post a message to this group, send
email to mapi...@googlegroups.com
To unsubscribe from this group, go to:
http://groups.google.com/group/mapinfo-l/subscribe?hl=en
For more options, information and links to MapInfo resources (searching
archives, feature requests, to visit our Wiki, visit the Welcome page at
http://groups.google.com/group/mapinfo-l?hl=en
Andy,There is much of what you say here that is essentially true but I think I can expand a bit.The error definitely come from the Object processing code and is basically just a warning, although technically we don't have warnings in MapBasic. The reason I say "warning" is that the overally process does not stop but the error does get set. This makes it difficult to appropriately trap as you say.The problem is that we don't know for sure that the geometry is invalid only that the geoprocessing found a situation it could not handle. And depending on the operation, it could be the result of previous calculation so the original object may not have been bad but perhaps its neighbor or an intermediate result in a large set of data. Generally there is some bad polygon involved. And the situation you have sent is just one of a number of possibilities.As to crashing with display nodes, there is not really any relationship between the geoprocessing code and the display. We don't check polygons on rendering. The only case I can think of is if you use the older method of "Clip Region" feature which uses geoprocessing to clip each feature to the specified clip areas. The default options for this feature, for many years, just uses rendering clipping via Windows but the older one still exists. The other case is the labelling option of "Partial Objects" which uses geoprocessing to produce the part of a geometry in the map view.But if you can reproduce this please send the information along.Also someone asked if Select * Where Str$(obj) <> Region works with multi-part objects and the answer is definitely yes, although you do have to put quotes on the "Region". You can also use where Int(ObjectInfo(obj, 1)) = 7 (7 is type region)Eric BlasenheimPitney Bowes Software
Hi Rob,
I tried to disaggregate your data:
Objects Disaggregate Into Table BadPoly Data Parcel_ID=Parcel_ID
Then I tried to query you data:
Select Area(obj, "sq m") from BadPoly where Area(obj, "sq m")<1 into a
Then I tried to delete small areas:
Delete from a
Then I tried to check your data with objects check:
Objects Check From BadPoly Into Table BadPoly Overlap Pen (1,2,0) Brush (2,16776960,0)
Then all data seem OK
| |||
| |||
Søren Breddam | |||
Teknik og Miljø | |||
Hovedgaden 46 |
|
|
|
4652 Hårlev | Mobil: |
| |
Telefon: |
| ||
| |||
Well, I also inspected your data bounds. They are wide J
You could tighten your bounds and increase your precision if you optimize bounds from:
Bounds (-7845061.1011, -15524202.1641) (8645061.1011, 4470074.53373)
To
Bounds (401368.121128, 143499.457963) (414643.6721, 156026.932011)
Hth
Søren
Well, I also inspected your data bounds. They are wide J
You could tighten your bounds and increase your precision if you optimize bounds from:
Bounds (-7845061.1011, -15524202.1641) (8645061.1011, 4470074.53373)
To
Bounds (401368.121128, 143499.457963) (414643.6721, 156026.932011)
Hth
Søren
My pleasure
Attached is the offending object, which consistently causes the error when using Clean to remove gaps smaller than 0.25 hectares. I have tried Check regions and there are apparently no self intersections, but the error is caused even by checking for gaps and/or overlaps (even if the max gap area is set to zero ). The error is almost instantaneous, so it looks like some kind of checking is taking place. I was a bit surprised by this as I would have thought that Objects Check Regions Gaps 0 "hectare" would be equivalent to doing nothing at all, or at least should not generate any data
I would not rule out ther possibility of a corrupted MAP file, but with a polygon of this complexity I don't have the time or the tools to investigate further. The Export and import seems to have fixed the problem for now, without causing unacceptable changes to the geometry as far as I can tell, but I expect to uncover more...
Thanks
I have noted another problem related to the same processing.
I now have a layer containing regions covering an area of maybe 100,000 hectares, without gaps or overlaps, representing the whole of a project area on which I am working. Initially I digitised an area larger than I needed and then used Erase Outside along with a single polygon of the project boundary to remove any excess data. I then created a blank polygon mask to go around the outside by creating a large rectangle and erasing out the middle using the same boundary polygon.
I would expect, since both were cut using the same polygon (one inside, one out), that there would be a good match between these, but when I combine the dataset and the mask in a single layer Check Regions consistently creates numerous sliver polygons around the edges, suggesting the fit is not perfect. I tried using Clean to close the gaps, but this generates numerous self intersections instead (even though the Clean dialog claims that self-intersections are always removed).
Any comments