Я перенес код из пакета sp в новый пакет sf. В моем предыдущем коде у меня был полигон SpatialDataFrame (censimentoMap) и SpatialPointDataFrame (indirizzi.sp), и я получил идентификатор ячейки полигона («Cell110») для каждой точки, лежащей внутри, с помощью инструкции ниже:
points.data <- over(indirizzi.sp, censimentoMap[,"Cell110"])
На самом деле я создал два sf-объекта:
shape_sf <- st_read(dsn = shape_dsn)
shape_sf <- st_transform(x=shape_sf, crs=crs_string)
и
indirizzi_sf = st_as_sf(df, coords = c("lng", "lat"), crs = crs_string)
И я ищу sf эквивалент вышеупомянутой инструкции ... Migth это будет:
ids<-sapply(st_intersects(x=indirizzi_sf,y=shshape_sfpeCrif), function(z) if (length(z)==0) NA_integer_ else z[1])
cell_ids <- shape_sf[ids,"Cell110"]