我对R和OpenCPU非常陌生。我从here找到了以下脚本,并希望将其改编到我的Arduino室内定位项目中。我打算通过CURL调用R函数到公共OpenCPU服务器https://cloud.opencpu.org。
library(geosphere)
locations <- data.frame(
latitude = c(
59.42606837, 59.42610146, 59.42654852, 59.42609108,
59.42603039, 59.42666361
),
longitude = c(
24.72553151, 24.72552969, 24.72467492, 24.72555759,
24.72565661, 24.72449149
),
distance = c(8, 8, 9, 9, 9, 14)
)
# Use average as the starting point
fit <- nls(
distance ~ distm(
data.frame(longitude, latitude),
c(fitLongitude, fitLatitude)
),
data = locations,
start = list(
fitLongitude=mean(locations$longitude),
fitLatitude=mean(locations$latitude)
),
control = list(maxiter = 1000, tol = 1e-02)
)
# Result
latitude <- summary(fit)$coefficients[2]
longitude <- summary(fit)$coefficients[1]
paste(latitude, longitude, sep=",")
经过官方documentation,官方blog和这个论坛,我认为我将需要使用R的会话来实现这一目标。我试图在OpenCPU testing tool中四处摸索,并遇到以下问题:
如何生成新会话并创建数据框“位置”?该文档仅提到每次使用POST都会生成一个新会话;和POST用于调用函数,但是我不想调用任何函数。我只想在调用“ nls”函数之前先设置一个数据帧。
如何调用nls函数?我尝试使用POST调用它,并在下面的scrrenshot中获取错误消息。好像“ geosphere”软件包没有加载?