R中

2015-03-13 37 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