#r #coordinates #geocoding #ggmap #r-leaflet
#r #координаты #геокодирование #ggmap #r-листовка
Вопрос:
У меня, вероятно, очень простой вопрос (я довольно новичок в R), но после некоторого поиска мне не удалось найти то, что я искал.
Мне нужно создать карту в R. Желательно с помощью пакетов листовок, но я абсолютно открыт для других предложений. Мои данные — это то, что вызывает проблемы. У меня есть адреса и координаты xy для всех точек, но большинству картографических пакетов нужны данные о широте и долготе.
Есть ли какой-либо способ довольно легко преобразовать адреса или координаты xy?
Я читал, что функция геокодирования должна это делать, но для этого Google требуется API, и я должен признать, что в этот момент я заблудился.
Данные содержат около 50 точек, поэтому было бы неплохо использовать метод массового преобразования в широту и длину.
Заранее большое вам спасибо.
Пример координат x, y
Name x y
Point_1 556305 6306381
Комментарии:
1. lon-широта может быть легко нанесена на листовку.. прочитайте некоторую документацию по
sf
-package . Виньетки 1-6 здесь: r-spatial.github.io/sf/articles/sf1.html . Если ваши данные не являются широтно-широтными, то, пожалуйста, укажите, какие координаты XY используются в ваших образцах данных.2. знаете ли вы, какая система координат используется для координат XY?
3. Я не знаю, нет. На веб-сайте, с которого извлекаются данные, не указано, какая система используется. Возможно, это система 34 (локальный датский).
4. Является ли Тринбак опечаткой (т.е. это Тримбак, Индия)? Нам нужно выяснить, в каких CRS находятся данные. Пожалуйста, отредактируйте свой вопрос и дайте ссылку на данные, если это возможно, или, если ваши данные загружены в
R
get the CRS withsf::st_crs()
, опубликуйте выходные данные5. Нам действительно нужно знать, что такое CRS, иначе, к сожалению, мы мало что можем сделать. В качестве альтернативы вы можете геокодировать исходные адреса philmikejones.me/tutorials /…
Ответ №1:
что-то вроде этого?
поиск crs с помощью: https://epsg.io/?q=denmark
пример данных
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 )
является ли более точным?
Комментарии:
1. Да! Хотя, похоже, это не совсем правильное положение. Но это может быть ошибкой в моей базе данных. Большое вам спасибо. 🙂
2. Возможно, я не использовал правильные символы в строке .
st_set_crs( 2198 )
Вам придется поэкспериментировать с этим!