【发布时间】:2017-05-05 18:15:55
【问题描述】:
我希望创建一个世界各国首都城市的距离矩阵。我已经创建了一个像这样的国家质心距离矩阵。 shapefile 来源于http://www.gadm.org/version2:
library(rgeos)
library(rgdal)
shapefile <- readOGR("./Map/World Map", layer = "TM_WORLD_BORDERS-0.3")
centroids <- gCentroid(shapefile, byid = TRUE, as.character(shapefile@data$UN)
dist_matrix <- as.data.frame(geosphere::distm(centroids)
colnames(dist_matrix) <- shapefile@data$NAME
rownames(dist_matrix) <- shapefile@data$NAME
现在我想做同样的事情,但使用国家首都而不是国家质心。理想情况下,即使我有其他不是首都的地理点,我也想要一种有效的方法。到目前为止,我已经在给定的 shapefile 上绘制了大写字母,但我找不到一种方法来从中创建距离矩阵。
library(rgeos)
library(rgdal)
library(maps)
library(tidyverse)
shapefile <- readOGR("./Map/World Map", layer = "TM_WORLD_BORDERS-0.3")
data("world.cities)
world..cities <- world.cities %>%
filter(world.cities$capital == 1)
plot(shapefile)
points(world.cities$long, world.cities$lat, col ="red", cex = .6, pch = 22, add = TRUE)
理想的输出格式应该是这样的
Algeria Albania Azerbaijan
Algeria 0 x x
Albania x 0 x
Azerbaijan x x 0
其中 x 表示各个国家首都之间的距离,以米或公里为单位。
【问题讨论】: