Похоже, что в этом PDF-файле содержится достаточно геопространственной информации для чтения библиотекой OGR
, доступ к которой можно получить с помощью пакета sf
:
> library(sf)
> plan = st_read("./7964_FLORIDA KEYS OUTLET MKTPLACE_CurrentWebLeasePlan-1_1.pdf")
Reading layer `~Remaining_objects' from data source `/home/rowlings/Downloads/SO/7964_FLORIDA KEYS OUTLET MKTPLACE_CurrentWebLeasePlan-1_1.pdf' using driver `PDF'
Simple feature collection with 998 features and 0 fields
geometry type: GEOMETRY
dimension: XY
bbox: xmin: 71.1875 ymin: 52.47917 xmax: 2478.271 ymax: 1613.917
epsg (SRID): NA
proj4string: NA
В нем 998 различных функций - строки,полигоны и т. д. Вы можете построить его:
> plot(plan$geometry)
Error in CPL_geos_is_empty(st_geometry(x)) :
Evaluation error: IllegalArgumentException: Invalid number of points in LinearRing found 3 - must be 0 or >= 4.
и пока игнорировать ошибку.Однако система координат не привязана к земле, ее начало (0,0) слева внизу:
> axis(1)
> axis(2)
ЕслиВы хотите, чтобы вы могли извлечь части плана и просто нарисовать их:
> plot(plan[1:100,])
, но нет метаданных о том, какие функции есть какие вещи.Все, что у вас есть, это геометрия.«Люкс» - это всего лишь одна комната?У вас будет
. Вы можете использовать geom_sf
из ggplot
, чтобы отобразить это, но когда это не удается с этой ошибкой, оно ничего не отображает:
> ggplot(plan) + geom_sf()
Error in CPL_geos_is_empty(st_geometry(x)) :
Evaluation error: IllegalArgumentException: Invalid number of points in LinearRing found 3 - must be 0 or >= 4.
Я отследил ошибку дономер 638, поэтому исключите его, если вы хотите использовать ggplot
:
> ggplot(plan[-638,]) + geom_sf()
>
. Я думаю, это столько, сколько вы можете автоматически выбрать из этого PDF.Если вы хотите закодировать названия областей из текста в PDF, это будет сложно.Текст не читается OGR
, и я могу думать только об одном: использовать конвертер PDF-to-Text, чтобы получить текст и его местоположение, а затем сопоставить местоположения с объектами многоугольника, но это может не произойти.работать, потому что системы координат, скорее всего, не совпадают .... Так что это может быть проще сделать вручную.Загрузите PDF-файл в QGIS (который должен работать, поскольку он использует OGR
), а затем создайте новые столбцы в таблице атрибутов и просмотрите каждый из них, добавив названия магазинов и информацию.Затем вы можете сохранить в шейп-файл (или лучше в геопакет), который вы можете прочитать в R и отобразить с помощью ggplot ...