0
주어진 lat/lon 점이 tz_world.shp 파일의 특정 다각형 내에 있는지를 결정하는 함수를 작성했습니다. 나는 뉴욕 주에있는 lon = -77, lat = 42로 전달합니다. 155 번째 항목의 ID는 'America/New_York'입니다. 그러나 point.inpoly를 사용하면 0 행 길이의 객체가 반환됩니다. 여기 내 코드가있다. 도와주세요. 감사. BSL.R : 표준 시간대 폴리곤의 찾아 내기
i = 155
timeZoneList = split(timeZonesShpFile, timeZonesShpFile$TZID)
ps = lapply(timeZoneList, Polygon)
p1 = lapply(seq_along(ps), function(i) Polygons(list(ps[[i]]), ID = names(timeZoneList)[i]))
my_spatial_polys = SpatialPolygons(p1, proj4string = CRS("+proj=longlat +datum=WGS84"))
polyNames = sapply(slot(my_spatial_spdf, 'polygons'), function(i) slot(i, 'ID'))
pt = SpatialPointsDataFrame(cbind(lon,lat), data.frame(row=1), proj4string=CRS("+proj=longlat +datum=WGS84"))
thisPoly = my_spatial_polys[ i ]
thisList = getSpPPolygonsIDSlots(thisPoly)
thisDf = data.frame(row = 1, row.names = thisList)
thisSpdf = SpatialPolygonsDataFrame(thisPoly, thisDf)
pIp = point.in.poly(pt, thisSpdf)
> pIp
[1] coordinates row row.1
<0 rows> (or 0-length row.names)
coords의 화면보기는 제공되는 lon/lat 포인트를 둘러싸는 NYS의 일반적인 경계 l/lat 점을 보여줍니다.
(SpatialPoints는 (북 data.frame (경도 = -77이 = 42)))는 오류를 범 : 오류 (함수 (클래스 FDEF, mtable)에서 : 'SpatialPoints ","missing "' –
당신이 한 일을 보았지만 over()를 사용하면 shp 인덱스 (예 : America/New_York)를 알고 있다고 가정합니다. .하지만, 원하는 lat/lon 점이 shp 파일의 올바른 위도/경도 좌표 집합에 속하도록 모양 인덱스의 이름이 필요합니다. 이는 적어도 'while'루프를 의미합니다. –
편집을 제안합니다. 원본 게시물을 읽으십시오. [How to R에서 최소한의 재현 가능한 예를 제공하십시오 (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example#answer-5963610). 그런 다음 적절하게 편집하고 개선하십시오. 좋은 게시물은 보통 최소한의 입력 데이터, 원하는 출력 데이터 및 코드 시도를 제공합니다. 새/깨끗한 R 세션에서 모두 복사하여 붙여 넣을 수 있습니다. 오류 (패키지 업데이트?)를 재현 할 수 없습니다. 그리고 나는 당신이 어떻게 생겨야 하는지를 보지 못합니다. – lukeA