在R中绘制英国邮政编码地图

3

请帮助 R 新手。

我有一个包含 3 百万英国邮政编码的列表。使用 R,将它们绘制到地图上的最佳方法是什么?

谢谢。


你的列表是什么样子的?你有一个文本文件吗?它长什么样子?当你说“在地图上”,是指“在基础地图上”还是只是在英国的轮廓上?你希望从绘图中得到什么3百万个点? - Spacedman
邮政编码在一个csv文件中。这是一家大型零售商的客户数据,我想将其绘制在地图上,以查看在线客户与实体店有多近。 - JVT
阅读文档:http://cran.r-project.org/web/views/Spatial.html - Spacedman
1个回答

13

步骤1 - 下载英国邮政编码地理信息:例如 http://www.doogal.co.uk/UKPostcodes.php

https://data.gov.uk/search?q=postcodes

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

您可以选择自己喜欢的格式。 CSV 格式易于处理。 将此表导入 R。

步骤2 - 创建包含您列表的子集

#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)

步骤三 - 创建空间对象并绘制地图

#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')

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接