Hello,
I am running into an issue I have had before (and probably always) with the buffer function. I am not sure if it is the limitation of the extension being used (if any) but it does not take much for me to cause Out of Memory exceptions or in general long wait times to return the buffered shape.
If the project is paused during the 'hang' the line focused on is the shape.buffer function. The geometry being buffered is not even a very complicated one, but that is a little besides the point. I have figured out a way to throw a rolling progress bar during this process to allow the users to understand the process is underway but I have no way to exit the buffer request if it takes a certain amount of time or offer the user a choice of whether to wait or not. I think this is very necessary when we are talking about a relatively simple buffer taking forever...
Just for some background, the process entails taking a users selection of various parcels (typically abutting one another) and unioning them ,and then applying the buffer to the shape returned from the union. The union is ALWAYS instant and the buffer is always the culprit. It's worth noting that the buffer can handle certain small value requests but something like 250 feet will sometimes cause a problem depending on the input geometry.
I am attaching a picture of the selected parcels that would act as the unioned input shape for buffering so that you may have an idea of how relatively simple the geometry is. The parcel highlighted in red is treated as all of the yellow ones. Also, I am running on a Quad Core with 4GB of ram so for my machine to basically run out of memory from a buffer is rather odd and I imagine end users PC's will exception much sooner due to their memory resources being lower. This has been an issue with the buffer since I started using Map Suite so it is not new behavior, but it is the current observed Achilles' Heel in our otherwise highly stable and high performing application so anything we can do to resolve this would be great.
I would like to see the ability to perform these buffers without any issue at all, but if that is beyond Map Suite's control, at least I would like ideas on how to abort this operation if it exceeds a certain amount of time. Is this possible?
By the way, stability in the past few component releases have been rock solid. Great job!
Thank you!
Dim shapeBuffer As BaseShape = shapeUnion.Buffer(BufferDistance, 8, BufferCapType.Square, 2, 1)