Yes. I ended up having to redo the process I have using MI Pro v 17 to get the correct SPLIT results.
I have to switch between MI Pro v 15 for the first part of my processing which does intensive object manipulation which leaves MI Pro v 17 with a memory leak. (After about 15 minutes of running, the memory usage is over 1.5GB; whereas, with v 15, not even over 150MB) I have made a note now, to just return to v 17 in order to perform the SPLIT functionality.
The bug # MapInfo support gave me back in October of 2012 was "The bug number is MIPRO-17149."
I've never received any further update from MapInfo which was unfortunate; therefore, I have to keep both versions 15 & 17 running on my workstation and server.
Thanks again for your suggestions.
Original Message:
Sent: 12-29-2020 08:16
From: James Nolet
Subject: MIPro Object Manipulate with Dense Nodes of Line Objects That Invert Into Polygon Object
Hi Nicholas,
It seems that the split operation is misinterpreting closed lines as polygons, probably, as you said, due to the complexity of your lines or issues with your data. It is interesting that it seems that even lines that do not cross a border (and therefore do not need to be split) are forming polygons. There are various things you could try before the split operation, to see if you can prevent the polygons from forming. However, if the splitting is successful in v17, can you just stick with that version?
------------------------------
James Nolet
Dooley Mitchell & Morrison Pty Ltd
Mentone, VIC, Australia
Original Message:
Sent: 12-29-2020 01:35
From: Nicholas Evanish
Subject: MIPro Object Manipulate with Dense Nodes of Line Objects That Invert Into Polygon Object
James,
Thank you for the reply. I apologize for the delay in writing back to you; however, with the holiday season, I have been on vacation (still am). I am already working with a native MapInfo .TAB file format.
I have taken into account what you recommended. My code was modified to use the str$(obj) function in a WHERE clause to help seperate the SPLIT functionality done within MI Pro to only do the following:
First - SELECT only the WHERE str$(obj) IN ("line", "polyline")
- Next, do the make only those lines/polyines editable, and set target, select municipal boundaries, and then do the SPLIT
Second - SELECT only WHERE str$(obj) IN ("region")
- Next, do the make only those region(s) editable, and set target, select municipal boundaries, and then do the SPLIT
What I found, was that in MI Pro v 15....the inversion regions DO appear....in MI Pro v 17.0.1...the inversion regions DOES NOT appear. Please see the image below as a reference (the red "B" label & orange shading fill of the region in the v 15 are the bad inversion regions created during the SPLIT operation) and as you can see, those are NOT created on the right-side.
Both use the same mapbasic execution lines to run and generate the results:
Does this make sense to you James because the MI Pro engine probably had evolved between v 15 to v 17? (That is the best answer I could come up with at this late hour) Your thoughts?
------------------------------
Nicholas Evanish
Original Message:
Sent: 12-23-2020 18:12
From: James Nolet
Subject: MIPro Object Manipulate with Dense Nodes of Line Objects That Invert Into Polygon Object
Hi Nicholas,
str$(obj)="region" in the Where clause will give you all polygons, likewise str$(obj) in ("line", "polyline") for the lines.
This is the complete list of object types you can use with this function: Arc, Ellipse, Frame, Line, Point, Polyline, Rectangle, Region, Rounded Rectangle, or Text.
However, are you attempting the split directly on a Shape file? If so, I'd try saving as Native-MapInfo first.
------------------------------
James Nolet
Dooley Mitchell & Morrison Pty Ltd
Mentone, VIC, Australia
Original Message:
Sent: 12-23-2020 10:25
From: Nicholas Evanish
Subject: MIPro Object Manipulate with Dense Nodes of Line Objects That Invert Into Polygon Object
Peter,
Thanks for the quick reply. I do not separate my splits by object type. Instead, I just do the split based on selecting the entire dataset (in this case it is a combination of: polygons, lines and/or polylines, and potentially points in there as well).
Could this be my issue? Are you saying that I should specifically only select out similar objects types first and foremost, do the set target, then split. And then after that is complete, proceed with the next object type (i.e. region), etc.?
These are the map basic commands I am telling MapInfo Pro to execute start (top) to finish (bottom):
ObjectsTab = the mixture of lines/polylines/polygons
Munis = municipality layer (polygon boundaries)
Map From ObjectsTab, munis
Set Map Layer 1 Editable On
Select * from ObjectsTab
Set Target On
Select * From munis
Objects Split Into Target Data
* I can confirm that after these steps run, is when I notice the object manipulation where polygons are generated.
Further, how would I query my single dataset to only SELECT the "lines" first, set as target, and do the split? I was trying to use the "ObjectInfo" function; however, I am not having any luck using that in the WHERE clause. (see image below that I can't get qualified to execute in MapInfo Pro)
I appreciate your help & time. Thank you.
------------------------------
Nicholas Evanish
------------------------------