[GRASS5] New operation to v.select: noverlap

Hi!

This patch adds another option to v.select, "noverlap". This is the
opposite of overlap. So all fetaures not in b are selected from a.

I haven't really tested this with all kinds of areas, so it might still
be buggy, but please try it out and let me know. I'll happily fix any
buggs I have added.

--Wolf

--

<:3 )---- Wolf Bergenheim ----( 8:>

(attachments)

v.select.noverlap.patch (3.45 KB)

At 04:56 PM 12/12/2005, Wolf Bergenheim wrote:

This patch adds another option to v.select, "noverlap". This is the
opposite of overlap. So all fetaures not in b are selected from a.

Thanks, Wolf...

I recently had the need for "a contains b" and "a is-contained-by b" in v.select. Any chance you want to add these as well, since you're on a roll ? :slight_smile:

Allan

On 13/12/05 16:02, Allan Metts wrote:

At 04:56 PM 12/12/2005, Wolf Bergenheim wrote:

This patch adds another option to v.select, "noverlap". This is the
opposite of overlap. So all fetaures not in b are selected from a.

Thanks, Wolf...

I recently had the need for "a contains b" and "a is-contained-by b"
in v.select. Any chance you want to add these as well, since you're on a
roll ? :slight_smile:

Ahmm.. I'm not sure I would know how to do that. The noverlap was easy,
since there was no need to do any checking. All I had to do was reverse
the overlap case. But it sounds like an interesing challange. I'll
probably do it, but no promises! (;

--W

--

<:3 )---- Wolf Bergenheim ----( 8:>

Allan, good news! I just figured out a way to do the contains operator.
is contained by can be doe by reversing a and b.

Here is what I plan to do, this is a bit technical, but it will serve as
a project plan (;
* Check that every point of B is in A by calling Vect_point_in_area()
* If this is true, then check that all points of A are not included in
  B with the same function. This is to ensure that A does not
  contain surprises like this:
+--+ +----+
| | *| A |
+ ++--+--+ |
| || *| | |
| |+--+ | |
| | B| |
| +------+ |
+----------+
Here A does not contain B (even if all ponts of B are inside A), because
of the "bay" marked by *.

Markus, Radim how does this sound?

--Wolf

On 13/12/05 16:24, Wolf Bergenheim wrote:

On 13/12/05 16:02, Allan Metts wrote:

At 04:56 PM 12/12/2005, Wolf Bergenheim wrote:

This patch adds another option to v.select, "noverlap". This is the
opposite of overlap. So all fetaures not in b are selected from a.

Thanks, Wolf...

I recently had the need for "a contains b" and "a is-contained-by b"
in v.select. Any chance you want to add these as well, since you're on a
roll ? :slight_smile:

Ahmm.. I'm not sure I would know how to do that. The noverlap was easy,
since there was no need to do any checking. All I had to do was reverse
the overlap case. But it sounds like an interesing challange. I'll
probably do it, but no promises! (;

--W

--

<:3 )---- Wolf Bergenheim ----( 8:>

It sounds good but v.select works for the whole map,
is it your intention to check individual features?
Note this case:
+---+ +---+
| +-+--+-+ |
| | | | | |
| +-+--+-+ |
+---+ +---+

Radim

On 1/7/06, Wolf Bergenheim <wolf+grass@bergenheim.net> wrote:

Allan, good news! I just figured out a way to do the contains operator.
is contained by can be doe by reversing a and b.

Here is what I plan to do, this is a bit technical, but it will serve as
a project plan (;
* Check that every point of B is in A by calling Vect_point_in_area()
* If this is true, then check that all points of A are not included in
        B with the same function. This is to ensure that A does not
        contain surprises like this:
+--+ +----+
| | *| A |
+ ++--+--+ |
| || *| | |
| |+--+ | |
| | B| |
| +------+ |
+----------+
Here A does not contain B (even if all ponts of B are inside A), because
of the "bay" marked by *.

Markus, Radim how does this sound?

--Wolf

On 13/12/05 16:24, Wolf Bergenheim wrote:
> On 13/12/05 16:02, Allan Metts wrote:
>
>>At 04:56 PM 12/12/2005, Wolf Bergenheim wrote:
>>
>>
>>
>>>This patch adds another option to v.select, "noverlap". This is the
>>>opposite of overlap. So all fetaures not in b are selected from a.
>>
>>
>>Thanks, Wolf...
>>
>>I recently had the need for "a contains b" and "a is-contained-by b"
>>in v.select. Any chance you want to add these as well, since you're on a
>>roll ? :slight_smile:
>>
>
>
> Ahmm.. I'm not sure I would know how to do that. The noverlap was easy,
> since there was no need to do any checking. All I had to do was reverse
> the overlap case. But it sounds like an interesing challange. I'll
> probably do it, but no promises! (;
>
> --W
>

--

<:3 )---- Wolf Bergenheim ----( 8:>

On 09/01/06 10:14, Radim Blazek wrote:

It sounds good but v.select works for the whole map,
is it your intention to check individual features?

Yes, that is the only case that I can think about. I know that this is
potentially a very timeconsuming task, but is there any other way?

Note this case:
+---+ +---+
| +-+--+-+ |
| | | | | |
| +-+--+-+ |
+---+ +---+

Hmm.. Argh.. is there any way to detect this case?

--Wolf

--

<:3 )---- Wolf Bergenheim ----( 8:>