リーフレット マップの境界内にあるすべてのポリゴンを取得しようとしています。リーフレットについて気にする必要はありません。問題は、rgeos またはその他の方法 (または主に正しい機能) についてです。さまざまな方法を試しましたが、形状が境界と交差する場合は問題なく機能しますが、境界内にある形状を取得できません (境界に触れていません)。
library(leaflet)
library(rgdal)
library(raster)
subzones<- readShapeSpatial("subzones.shp")
N<- 51.5139
S<-51.5130
W<-(-0.1899)
E<-(-0.1890)
BB = matrix(c(W,E,E,W,W,N,N,S,S,N), nrow=5,ncol=2)
BB = Polygon(BB)
BB = Polygons(list(BB),1)
BB = SpatialPolygons(list(BB))
もちろん、この例を再現することはできませんが、一般的に BB は非常に小さく、どのサブゾーンよりもはるかに小さく、テスト目的のみです。もちろん、より大きなBBを作成すると、いくつかのサブゾーンがキャッチされます.小さなものは確かにそれらの1つに含まれています. 再現可能な例に翻訳すると、ロンドンにズームインすると、何にも交差しないため、「イングランド」を取得できません。rgdal(gIntersection、gIntersects、gCovers、gCrosses、gOverlaps、gWithin、overGeoGeo、gContains、およびおそらく他のいくつかのもの)とラスター(クロップ)を成功させずに試しました。私の目的は、マップ ボックス内に表示されるサブゾーン (空間データフレームまたはデータフレーム) のサブセットを取得することです。私が間違っていることは何ですか?または単にそれを行う方法は?
再現できるようにするため: ここのシェープファイルhttp://thematicmapping.org/downloads/TM_WORLD_BORDERS_SIMPL-0.3.zip
library(maptools)
getinfo.shape("TM_WORLD_BORDERS_SIMPL-0.3.shp")
world.map <- readShapeSpatial("TM_WORLD_BORDERS_SIMPL-0.3.shp")
上の BB はロンドンのどこかにある小さな長方形です - bb 内にある可能性のある world.map レコードを見つける方法 - それを横切るか、完全に含まれています (ここでは英国のみですが、 BBはヨーロッパサイズ)
編集:適切なポリゴンではなくマルチラインを含むシェープファイルに問題がありました、ありがとう