パッケージのgTouches
関数は、rgeos
「ジオメトリに共通の境界点が少なくとも 1 つあるが、内部点がない」かどうかをテストします。内部点に関連する基準なしで、 「ジオメトリに共通の境界点が少なくとも 1 つある」かどうかをテストする方法を探しています。
基本的なセットアップは次のとおりです。ほとんどが互いに埋め込まれている 2 つのシェープファイルがあります。大きな領域の境界にある小さな領域を持つファイル内のポリゴンを見つけたいです。ここに私がやろうとしていることを説明するグラフがあります:
plot(map2, col=NA, border='black', lwd=0.4)
plot(map1, col=NA, border='#666666', lwd=0.2, add=TRUE)
この図は、ニューヨーク州スタテン アイランドの国勢調査ブロックを示しています。大きな領域の 1 つにある緑色の強調表示は、識別したいブロックを示しています。より大きな領域の境界を共有または交差するもののみ (太い線)。大きなエリアの真ん中にあるブロックではありません。パッケージ内のwithgTouches(map2,map1, byid=TRUE)
および他の機能を使用してこれを実行しようとしましたrgeos
が、成功しませんでした。おそらく、「ジオメトリには共通の境界点が少なくとも 1 つありますが、内部の点はありません」という基準があるため、gTouches
返されるだけです。FALSE
基本的には、内部に関係なく「ジオメトリに共通の境界点が少なくとも 1 つある」かどうかをテストする関数を探しています。
フォローアップの質問は、相互境界線の長さを取得できるかどうかです。
データ:こことここから2 つのマップをダウンロードできます。どちらもrdsファイルなので、次のように開くことができます:
library('rgdal')
library('rgeos')
library('sp')
map1 = readRDS('map1.rds')
map2 = readRDS('map2.rds')