R中

2015-03-13 39 views
2

在地圖上繪製英國的郵政編碼,請幫忙將R新手R中

我英國的郵政編碼名單 - 事實上3米意見。使用R將他們繪製到地圖上的最佳方式是什麼?

感謝

+0

是什麼你的清單看起來像?你有沒有文本文件?這是什麼樣子?當你說「在地圖上」時,你的意思是「在底圖上」還是僅僅在英國的輪廓上?你希望從情節上的300萬點獲得什麼? – Spacedman 2015-03-13 16:10:29

+0

郵政編碼在csv文件中。這是我想在地圖上繪製的主要零售商的客戶數據,以瞭解在線客戶與實體店的距離。 – JVT 2015-03-13 17:23:30

+0

閱讀文檔:http://cran.r-project.org/web/views/Spatial.html – Spacedman 2015-03-13 17:28:44

回答

8

第1步 - 下載屋POSTALCODE地理信息:例如 http://www.doogal.co.uk/UKPostcodes.php

http://data.gov.uk/apps/uk-postcodes

http://www.freemaptools.com/download-uk-postcode-lat-lng.htm

您可以選擇您所選擇的格式。 CSV很容易使用。 導入此表爲R.

第二步 - 與您的清單

#You have now a data.frame Df_UK containing geoinfo. 
#Your initial list is in Df_JVT with variable PostCodes. 
list <- as.list(unique(Df_JVT$PostCodes)) 
#Select your postcodes from Df_UK and choose variable to display on the map 
datamap <- subset(Df_UK, Df_UK$POSTNR %in% list, select= c("POSTNR","CITY", "COUNTY", "LAT", "LON")) 
row.names(datamap) <- 1:nrow(datamap) 

第3步創建一個子集 - 創建一個空間對象和繪製地圖

#Transform data.frame in spatial object 
require(rgdal) 
require(sp) 
require(plotGoogleMaps) 

datamap_mat<- cbind(datamap$LON,datamap$LAT) 
row.names(datamap_mat) <- 1:nrow(datamap_mat) 
AACRS <- CRS("+proj=longlat +ellps=WGS84") 

UK_Map <- SpatialPointsDataFrame(datamap_mat, datamap, proj4string = AACRS, match.ID = TRUE) 


#Map Points on Googlemaps 
m <- plotGoogleMaps(Uk_Map , filename='MAP_UK.html') 
+1

note'Uk_Map'應該是'UK_Map' – 2016-12-12 10:37:08