R:根據GIS座標計算兩點距離

> 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
相關文章
相關標籤/搜索