library("raster")library("spdep")#p1<- shapefile("E:\new_delta_map\\new_delta_map_2.shp")p=shapefile("E:\\new_delta_map\\deltacity_2.shp",encoding="UTF-8")cityname=c('安庆市', '池州市', '滁州市', '宣城市', '常州市', '南京市', '南通市', '苏州市', '泰州市', '无锡市', '盐城市', '扬州市', '镇江市', '杭州市', '湖州市', '嘉兴市', '金华市', '宁波市', '绍兴市', '台州市', '舟山市', '马鞍山市', '芜湖市', '合肥市', '上海市', '铜陵市')p$count_name=citynamelatlon=read.csv("E:\\data\\cor.csv")latlon=as.data.frame(latlon)xy[,1]=latlon[,2]#换成城市实际坐标xy[,2]=latlon[,3]###############wr <- poly2nb(p, row.names=p$ID_1, queen=TRUE)wr[[18]]=sort(as.integer(c(wr[[18]],21)))wr[[21]]=sort(as.integer(c(18)))wm <- nb2mat(wr, style='B', zero.policy = TRUE)write.csv(wm,"E:\\new_delta_map\\deltacitycluster-1.csv") #相邻矩阵###############Distance based:wd100 <- dnearneigh(xy, 0, 100, longlat=TRUE)wmwd100<- nb2mat(wd100, style='B', zero.policy = TRUE)write.csv(wmwd100,"\\new_delta_map\\deltacitycluster-wd100.csv") #相距离100km矩阵#Nearest neighbors:k3 <- knn2nb(knearneigh(xy, k=3, RANN=FALSE))wmk3<- nb2mat(k3, style='B', zero.policy = TRUE)write.csv(wmk3,"E:\\new_delta_map\\deltacitycluster-k3.csv") #相邻3个矩阵plot(p, col='white', border='blue')plot(wr, xy, col='red', lwd=2, add=TRUE)#作图,以相邻矩阵为连接text(xy,p$count_name,cex=.7, halo=TRUE, hc="white", col='blue', hw=0.0)#halo是晕圈,设置hw=0则去除晕圈