2017-05-06 4 views
1

Je voudrais effacer les éléments de A, un SpatialLinesDataFrame, qui chevauchent avec B, un autre SpatialLinesDataFrame pour donner A 'qui devrait être plus petit que A. En d'autres termes je veux un nouveau SLDF qui ne chevauche pas du tout avec B. C'est essentiellement la fonction "effacer" dans ArcMap. Pour être clair, je ne veux pas conserver les instances où elles se chevauchent, je veux éliminer les instances qui se chevauchent de A afin que A 'et B ne se chevauchent pas.Effacer la fonction pour SpatialLinesDataFrame dans R?

Merci!

+0

Expliquez ce que vous entendez par « chevauchement ». Voulez-vous éliminer tous les éléments de A à l'intérieur de la coque convexe de B? – Tbar

+0

A et B sont des lignes spatiales donc si les lignes se chevauchent/occupent le même espace. c'est-à-dire une partie de A "chevauche" avec une partie de B – wraymond

+0

Je n'essaie pas d'être dense ici, mais je ne sais vraiment pas ce que vous voulez dire. Il n'est pas clair comment vous définiriez le «chevauchement» d'un groupe de lignes à une dimension ... Avez-vous une image qui peut illustrer ce que vous voulez dire? – Tbar

Répondre

0

Essayez d'utiliser rgeos::gDifference sur vos objets A et B, éventuellement après avoir fait une rgeos::gUnaryUnion sur B.