我如何计算地铁站的乘客人数?

时间:2019-03-27 15:49:45

标签: r r-leaflet

你好,这是我对stackoverflow的第一个问题,我希望我做的一切正确。 我想算一下地铁站的乘客。 我有四个向量,分别是乘客和车站的经度和纬度。 我用半径20米的圆圈和标记来代表车站。 现在,我想知道圈子中有多少个标记。 我已经尝试过用markerClusterOption对标记进行求和,但是将圆圈外的标记添加到圆圈中的标记中,我只想对圆圈内的标记求和。 我的目标是只增加圆圈内的标记数。

for

here is an example

i want it like this

1 个答案:

答案 0 :(得分:0)

R具有“ geosphere”程序包,用于在给定两个点的经度和纬度的情况下计算距离。问题是要计算出每个车站的乘客在20米以内。

library(geosphere)
#create dataframe of data, first column longitude, second latitude 
subway<-data.frame(SubwayStation_long, SubwayStation_lat)
passagier<-data.frame(Passagier_long, Passagier_lat)

#proceed row by row and caluclate the distance between the station and each passenger
#return TRUE if the distance is within 20 meters
#first column of output goes with first row of station data.
within20m<-apply(subway, 1, function(x){distGeo(x, passagier)<20})

#number within 20 meters of each station
colSums(within20m)

apply语句的输出示例。

       [,1]  [,2]
 [1,]  TRUE FALSE
 [2,] FALSE FALSE
 [3,]  TRUE FALSE
 [4,]  TRUE FALSE
 [5,]  TRUE FALSE
 [6,] FALSE FALSE
 [7,] FALSE  TRUE
 [8,] FALSE  TRUE
 [9,] FALSE  TRUE
[10,]  TRUE FALSE
[11,] FALSE  TRUE
[12,] FALSE  TRUE

这应该为合理数量的车站和乘客提供可接受的性能。如果您拥有大量的站点和大量的乘客,那么此解决方案将遇到性能问题,并且需要其他工具和技术。