Я использовал некоторые данные с открытым исходным кодом для создания картограмм, показывающих плотность населения в Республике Ирландия c, используя пакет leaflet
в R.
Найден подходящий файл .kml
, который на основе тех же геокодов, что и в моей таблице плотности населения (она находится на уровне "маленькой области", которая разбивает страну на примерно 19 000 кусков).
У меня есть некоторый код для импорта файла .kml
:
ireland <- readOGR("Source Data/Small_Areas__Generalised_100m__OSi_National_Boundaries.kml")
и фрейм данных df_merged
, который имеет поля GEOGID
и density
(и несколько других). Код для создания карты:
popup1 <- paste0("<span style='color: #7f0000'><strong>Data</strong></span>",
"<br><span style='color: salmon;'><strong>Small Area: </strong></span>", df_merged$GEOGID,
"<br><span style='color: salmon;'><strong>Population: </strong></span>", df_merged$T1_1AGETT,
"<br><span style='color: salmon;'><strong>Area: </strong></span>", df_merged$Shape__Area,
"<br><span style='color: salmon;'><strong>Density: </strong></span>", df_merged$density
)
mymap_density <- leaflet() %>%
addProviderTiles("Esri.WorldGrayCanvas",
options = tileOptions(minZoom = 5,
maxZoom = 18,
opacity = 1)) %>%
addPolygons(data = ireland,
fillColor = ~palette_density(df_merged$density),
fillOpacity = 0.5,
color = "darkgrey",
weight = 0.1,
popup = popup1) %>%
addLegend(position = "topleft",
colors = my_color_scheme,
labels = c("Lowest", "", "", "", "", "", "", "", "Highest"),
opacity = 0.6,
title = "Population Density")
Карта dr aws в порядке, но есть проблема: совершенно очевидно, что данные для данного геокода не отображаются в правильной части карта. Например, на карте ниже геокод A048053001 представляет небольшую городскую зону в Корке, но данные для этого геокода показаны в совершенно другом месте на карте. Карта говорит мне, что большая пустая область сельской местности имеет крошечную область и огромную плотность населения, которая является ненормальной.
Я действительно ничего не знаю о внутренностях файлов .kml
, поэтому я ' Я не уверен, как go об исправлении этой проблемы. Ни в одной точке кода я не сказал R, что поле df_merged$GEOGID
должно быть связано с определенным многоугольником внутри файла .kml
- поэтому я пропустил этап или допустил ошибку здесь?
Если Я импортирую файл .kml в Google Планета Земля, такой проблемы не возникает, что, как мне кажется, исключает какие-либо проблемы с базовыми данными (предоставленными правительством Ири sh, которое в любом случае должно быть надежным источником).
Приведенный выше код на самом деле не является воспроизводимым примером, поскольку он опирается на внешние файлы данных.
Может кто-нибудь предложить какой-либо совет, пожалуйста?
Спасибо.