繁体   English   中英

转换经纬度

[英]Converting latitude and longitude

以下数据框代表纬度和经度的十进制坐标。 我希望使用+和-来显示小数度是北,南,东还是西(在“纬度和经度”列中)。

因此,如果十进制度为N,则纬度为正。...如果十进制度为S,则纬度为负。...如果十进制度为E,则经度为正;如果十进制度为E,则经度为负。小数度为W。

a <- c(1:3)
Lat <- c(54.5, 55.2, 10.1)
NS <- c("N","N","S")
Long <- c(1.2, 0.5, 1.3)
EW <- c("W","E","W")
df1 <- data.frame(a,Lat,NS,Long,EW)

我将如何在R中执行此操作? 任何建议将不胜感激。

使用ifelse

df1 <- within(df1, {
             Lat <- ifelse(NS=="N", Lat, -Lat)
             Long <- ifelse(EW=="E", Long, -Long)
})

df1
  a   Lat NS Long EW
1 1  54.5  N -1.2  W
2 2  55.2  N  0.5  E
3 3 -10.1  S -1.3  W

我使用within()减少了输入量。

非常简单的ifelse

df2 <- data.frame(a=df1$a, Lat=ifelse(df1$NS=="N", df1$Lat, -1*df1$Lat), 
                           Long=ifelse(df1$EW=="E", df1$Long, -1*df1$Long))

df2
  a   Lat  Long
1 1  54.5 -1.2
2 2  55.2  0.5
3 3 -10.1 -1.3

请参阅NMEA转换: http : //www.nmea.org/,但是您可以使用for()方法来获得该位置

Alguémpoderia me ajudar naconstruçãodesseexercícioeleétodo em algoritmo:

最适合进行纵向,纵向和纵向学习的老师,可以向宠物提供指导,也可以向宠物发出警告,例如: Algoritmo的Pode ser utilizado ferramentas。

征求意见稿。

algoritmo“Média” var Media,P1,P2,P3,P4:实际值Escreva(“ Digite a Longitude:”)Leia(P1)Escreva(“ Digite a Latitude:”)Leia(P2)

  Media <- (P1 * P2) / 180
  Se (Media >= 100) entao
     Escreval (Media," cachorro na zonal segura")
  Senao
       Escreval (Media," cachorro fora da zona de segurança")
  Fimse

Fimalgoritmo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM