2017-02-14 7 views
3

Я пытаюсь построить сайт некоторых данных о событиях болезней на карте.Листовка R derivePolygons missing lat missing long

Я использую для импорта данных:

ByTown<-readOGR(dsn="C:/temp/lyme/Towns", layer="Towns", encoding = "UTF-8", verbose= FALSE) 

проверить класс:

class(ByTown) 
#getting this result 
[1] "SpatialPolygonsDataFrame" 
attr(,"package") 
[1] "sp" 

Тогда я конвертировать все факторы в символьные данные и проверить, что у меня еще SpatialPolygonsDataFrame используя class, что я и делаю:

Затем я отформатирую данные, которые я хочу объединить, в тот же титул, что и оригинал:

townCount$City<-str_to_title(townCount$City) 

Тогда я geo_join данные подсчета пространственной рамы многоугольник данных:

ByTown<-geo_join(ByTown, townCount,"MCD_NAME", "City") 

Затем я установить палитру и запустить отображение:

pal = colorQuantile("PuOr",ByTown$count, n=5) 
map<-leaflet(ByTown) %>% 
    addProviderTiles("CartoDB.Positron")%>% 
    addPolygons(fillColor = ~pal(count), 
      color = "#000000", 
      stroke = TRUE, 
      weight = 1, 
      smoothFactor = 0.5, 
      options(viewer = NULL)) 
map 

И я получаю эту ошибку:

Error in derivePolygons(data, lng, lat, missing(lng), missing(lat), "addPolygons") : 
    addPolygons must be called with both lng and lat, or with neither. 

Я смотрел в координатах слоты, и там есть данные ... Меня озадачивает ошибка и не находит полезных ответов в Интернете. Вот глава первого многоугольника в слоте координатах:

head([email protected][[1]]@Polygons[[1]]@coords) 

      [,1]  [,2] 
[1,] 1036519 916318.7 
[2,] 1036039 916355.8 
[3,] 1031757 916299.7 
[4,] 1027474 916244.5 
[5,] 1026709 916198.1 
[6,] 1026826 916248.3 

Любой каждый имеет эту проблему, определить причину и исправить ее?

ответ

4

Функция addPolygons либо требует определения столбцов широты & долготы, либо она попытается получить их из данных, которые вы предоставляете.

Учитывая, что вы не указали столбцы lat/lon, он пытается определить, какими они являются. В вашем случае он не смог их найти. Это связано с тем, что ваши данные не находятся в формате lat/lon.

Таким образом, вам необходимо преобразовать данные использовать широту/долготу проекцию, что-то вроде (непроверенный)

nByTown_latlon <- spTransform(nByTown, CRS("+proj=longlat +datum=WGS84")) 
+0

Thanks..we использует эти файлы форма на некоторое время, и это первый раз у меня это случилось. Я попробую сегодня и посмотрю, как это происходит. Спасибо! – sconfluentus

+0

Это на самом деле удивительно: буклет требует координат lat/lon – SymbolixAU

+0

Я просто посмотрел, это первый раз, когда я geo_joined без другого шейп-файла и проекции. Я просто никогда не замечал, что все наши другие шейп-файлы были широкополосными, и когда я использовал spTransorm для их включения в один и тот же проектор, он тоже должен был зафиксировать этот файл формы ... ah geoGods! Так много происходит под капотом! – sconfluentus