> library(geosphere) > a<-c(113.024474,28.187446) > b<-c(113.115411,22.966027) > dist<-distVincentySphere(a,b) > dist
計算兩組變量相互間的最短距離git
> library(geosphere) > allhouse name Longitude Latitude 1 東圃怡景公寓 113.4686 23.10118 2 安居樓 113.3972 23.11963 3 安廈花園 113.4280 23.12134 4 白雲一建宿舍 113.4000 23.11414 5 寶興翠園 113.4206 23.11491 6 車陂居委小區 113.4000 23.11374 7 城市假日園 113.4042 23.12489 8 創業樓 113.3978 23.12135 9 翠屏富通雅苑 113.4252 23.11616 10 翠盈軒 113.4058 23.12361 11 東和園 113.4099 23.11380 12 東華居 113.4025 23.12148 13 東環新村 113.4076 23.11567 14 東圃59號大院 113.4222 23.12724 15 東圃邊檢宿舍 113.4043 23.11556 16 東圃法院宿舍 113.4043 23.11535 17 東圃公安宿舍 113.4031 23.11703 18 東圃供銷社宿舍 113.4032 23.11704 19 東圃供銷宿舍 113.4008 23.11556 20 東圃廣場 113.4056 23.12321 > standardhouse name Longitude Latitude 1 天河桃苑 113.4077 23.10929 2 盈彩美居 113.4183 23.11442 3 金東花園 113.4000 23.11361 4 雅怡居 113.4025 23.11858 5 天河桃園居 113.4089 23.11389 6 羊城花園 113.4113 23.11877 7 景安花園 113.4265 23.11583 8 富力花園 113.4231 23.12040 9 園丁苑 113.4135 23.12185 10 悅盛苑 113.3981 23.12174 11 東華居 113.4025 23.12148 12 城市假日園 113.4042 23.12489 13 天雅居 113.4108 23.12438 > aLongitude<-allhouse$Longitude > aLatitude<-allhouse$Latitude > sLongitude<-standardhouse$Longitude > sLatitude<-standardhouse$Latitude > n<-length(aLongitude) > m<-length(sLatitude) > orderlist<-vector() > for(i in 1:n){ + distlist<-vector() + a<-c(aLongitude[i],aLatitude[i]) + for(k in 1:m){ + b<-c(sLongitude[k],sLatitude[k]) + dist<-distVincentySphere(a,b) + distlist[k]<-dist + next} + orderlist[i]<-which.min(distlist) + next} > allhouse$order<-orderlist > allhouse name Longitude Latitude order 1 東圃怡景公寓 113.4686 23.10118 7 2 安居樓 113.3972 23.11963 10 3 安廈花園 113.4280 23.12134 8 4 白雲一建宿舍 113.4000 23.11414 3 5 寶興翠園 113.4206 23.11491 2 6 車陂居委小區 113.4000 23.11374 3 7 城市假日園 113.4042 23.12489 12 8 創業樓 113.3978 23.12135 10 9 翠屏富通雅苑 113.4252 23.11616 7 10 翠盈軒 113.4058 23.12361 12 11 東和園 113.4099 23.11380 5 12 東華居 113.4025 23.12148 11 13 東環新村 113.4076 23.11567 5 14 東圃59號大院 113.4222 23.12724 8 15 東圃邊檢宿舍 113.4043 23.11556 4 16 東圃法院宿舍 113.4043 23.11535 4 17 東圃公安宿舍 113.4031 23.11703 4 18 東圃供銷社宿舍 113.4032 23.11704 4 19 東圃供銷宿舍 113.4008 23.11556 3 20 東圃廣場 113.4056 23.12321 12
獲取GIS座標code
> library('RbaiduMaps') > library("RJSONIO") > GIS<-getGeoCodeBD("廣州中泰廣場") > GIS lat lon 23.15524 113.32968
批量抓取GIS座標get
> library('RbaiduMaps') > library("RJSONIO") > houselist<-c("廣州花都293大院","廣州花都293醫院小區","廣州花都30號小區","廣州花都澳景藍庭","廣州花都百合豪園","廣州花都百合雅居","廣州花都百壽路小區") > number<-length(houselist) > for (n in 1:number){ + i<-houselist[n] + GIS<-tryCatch({getGeoCodeBD(i)},error=function(e){"NA"}) + names(GIS)<-NULL + print(GIS) + next} [1] 23.37996 113.26831 [1] 23.38573 113.22427 [1] 23.38141 113.21939 [1] 23.40742 113.20572 [1] 23.41178 113.21541 [1] 23.47352 113.15592 [1] 23.41214 113.24474