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
相关文章
相关标签/搜索