У меня, вероятно, очень простой вопрос (я новичок в R), но после некоторого поиска мне не удалось найти то, что я искал.
Мне нужно создать карту в R. Желательно с пакетами Leaflet, но я абсолютно открыт для других предложений. Мои данные вызывают проблемы. У меня есть адреса и координаты x y для всех точек, но большинству картографических пакетов нужны данные широты и долготы.
Есть ли способ довольно легко преобразовать адреса или координаты x y?
Я читал, что это должна делать функция геокодирования, но Google требует, чтобы для этого работал API, и я должен признать, что в этот момент я потерялся.
Данные содержат около 50 точек, поэтому было бы неплохо иметь метод массового преобразования в широту и долготу.
Заранее большое спасибо.
Пример координат x,y
Name x y
Point_1 556305 6306381
Вы знаете, какая система координат используется для XY-координат?
Я не знаю. На веб-сайте, с которого извлекаются данные, не упоминается, какая система используется. Возможно, это System 34 (местный датский).
Является ли Тримбак опечаткой (т. е. это Тримбак, Индия)? Нам нужно выяснить, в какой CRS находятся данные. Пожалуйста, отредактируйте свой вопрос и дайте ссылку на данные, если это возможно, или, если ваши данные загружены в R
, получите CRS с помощью sf::st_crs()
и опубликуйте вывод.
Нам действительно нужно знать, что такое CRS, иначе, к сожалению, мы мало что можем сделать. В качестве альтернативы вы можете геокодировать исходные адреса philmikejones.me/tutorials/….
Trinbak — это не опечатка (Trinbak, Дания). команда sf::st_crs() не может найти систему (выход NA). Я предполагаю, что это System 34 (местный датский). И большое спасибо за всю вашу помощь до сих пор. `sf::st_crs(Mappe1) Система отсчета координат: NA`
что-то вроде этого?
искал crs, используя: https://epsg.io/?q=денмарк
образец данных
df <- data.frame( city = "Trinbak", lon = 556305, lat = 6306381 )
код
library(sf)
library(leaflet)
df.sf <- st_as_sf( df, coords = c("lon", "lat") ) %>%
st_set_crs( 2198 ) %>% #set coordinate system used
st_transform( 4326 ) #transform coordinates to WGS84 coordinates
leaflet() %>% addTiles() %>% addMarkers( data = df.sf )
выход
возможно
df.sf <- st_as_sf( df,
coords = c("lon", "lat") ) %>%
st_set_crs( 23032 ) %>%
st_transform( 4326 )
точнее?
Да! Хотя, похоже, это не совсем правильная позиция. Но это может быть ошибка в моей базе данных. Спасибо большое. :)
Возможно, я не использовал правильный crs в строке st_set_crs( 2198 )
. Вам придется поэкспериментировать с этим!
Долгота-широта может быть легко нанесена на листовку. Прочтите документацию по
sf
-package. Эпизоды 1–6 находятся здесь: r-spatial.github.io/sf/articles/sf1.html. Если ваши данные не являются долготой и широтой, укажите, какие координаты XY используются в ваших примерных данных.