Я столкнулся с хитрой проблемой.
Я пытаюсь выполнить простой многоугольный клип, используя пакет sp
, используя либо функцию fuction st_difference(st_union(x),st_union(y))
(или ее вариант), либо st_intersection
, в зависимости от того, что лучше всего работает.
Хотя это легко с двумя поверхностными полигонами, мне нужно обрезать его в ужасно большой скачанный Large SpatialPolygonsDataFrame, это просто шейп-файл для Великобритании, скачанный из:
https://gadm.org/download_country_v3.html
Шейп-файлы имеют следующий вид (нанесено на leaflet
):
> str(uk)
Formal class 'SpatialPolygonsDataFrame' [package "sp"] with 5 slots
..@ data :'data.frame': 1 obs. of 70 variables:
.. ..$ ID_0 : Factor w/ 1 level "242": 1
.. ..$ ISO : Factor w/ 1 level "GBR": 1
.. ..$ NAME_0 : Factor w/ 1 level "United Kingdom": 1
# .....etc.
#
> str(box)
sfc_POLYGON of length 1; first list element: List of 1
$ : num [1:5, 1:2] -7.237 0.126 0.126 -7.237 -7.237 ...
- attr(*, "class")= chr [1:3] "XY" "POLYGON" "sfg"
Я хочу обрезать box
(синий) до uk
, причина этого в том, что слишком много времени занимает рендеринг шейп-файла из Великобритании (и Франции в этом отношении) в листовку.