> setwd("…\\shp2mat")
> library(maptools)
#查看shape文件数据情况
> provinces
> capitals
> plot(provinces); plot(capitals, pch = 19, cex = 0.6, add = T)
> provinces@data
> capitals@data
#1元素取值为0-1
#1.1省份面
#1.1.1基于queen邻接关系设定邻居,赋值为1
> pmat1
#1.1.2将距离最近的3个单元设为邻居,赋值为1
> pmat2
#1.1.3将500公里以内的单元设为邻居,赋值为1
> pmat3
#1.2省会点
#1.2.1基于泰森多边形邻接关系设定邻居,赋值为1
> cmat1
#1.2.2将距离最近的3个单元设为邻居,赋值为1
> cmat2
#1.2.3将500公里以内的单元设为邻居,赋值为1
> cmat3
#2元素取值为距离,这里基于经纬度计算弧度距离,以km为单位
#2.1省份面
#2.1.1给出所有单元间距离
> pmat1
#2.1.2给出最近三个邻居的距离
> pmat2
#2.1.3给出500公里范围内的邻居距离,如无邻居则用距离最近的单元替代
> pmat3
#2.2省会点
#2.2.1给出所有点对间距离
> cmat1
#2.2.2给出最近三个点的距离
> cmat2
#2.2.2给出500公里范围内的邻居距离,如无邻居则用距离最近的点替代
> cmat3
#给距离矩阵行列赋名并写出权重矩阵
> unit.names
> dimnames(pmat1)
> write.csv(pmat1, "province31_distance.csv")
> unit.names
> dimnames(cmat1)
> write.csv(cmat1, "capital31_distance.csv")