library(httr)
library(jsonlite)
library(dplyr)
library(kableExtra)
response1 <- GET("https://services.marinetraffic.com/api/exportvessel/v:5/8a9b95402978ef3254b493aa7b142e2635f7ca6b/mmsi:311475000/timespan:60/protocol:jsono/msgtype:extended")
df_1 = fromJSON(rawToChar(response1$content))
response2 <- GET("https://services.marinetraffic.com/api/exportvessel/v:5/8a9b95402978ef3254b493aa7b142e2635f7ca6b/mmsi:257560000/timespan:60/protocol:jsono/msgtype:extended")
df_2 = fromJSON(rawToChar(response2$content))
response3 <- GET("https://services.marinetraffic.com/api/exportvessel/v:5/8a9b95402978ef3254b493aa7b142e2635f7ca6b/mmsi:636015992/timespan:60/protocol:jsono/msgtype:extended")
df_3 = fromJSON(rawToChar(response3$content))
data <- bind_rows(df_1, df_2, df_3)
knitr::kable(data)
| MMSI | LAT | LON | SPEED | HEADING | COURSE | STATUS | TIMESTAMP | SHIPNAME | SHIPTYPE | TYPE_NAME | AIS_TYPE_SUMMARY | IMO | CALLSIGN | FLAG | PORT_ID | PORT_UNLOCODE | CURRENT_PORT | LAST_PORT_ID | LAST_PORT_UNLOCODE | LAST_PORT | LAST_PORT_TIME | DESTINATION | ETA | ETA_CALC | LENGTH | WIDTH | DRAUGHT | GRT | NEXT_PORT_ID | NEXT_PORT_UNLOCODE | NEXT_PORT_NAME | NEXT_PORT_COUNTRY | DWT | YEAR_BUILT | DSRC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 311475000 | 23.391330 | -179.698300 | 133 | 286 | 286 | 0 | 2021-10-12T19:36:34 | GLOBAL LEADER | 70 | Vehicles Carrier | Cargo | 9237319 | C6SU5 | BS | NA | NA | NA | 906 | CLSAI | SAN ANTONIO | 2021-09-19T02:04:00 | JP NGO | 2021-10-24T03:00:00 | 2021-10-19T18:00:00 | 189.21 | 32.29 | 79 | 48710 | 2715 | JPNGO | NAGOYA | JP | 17125 | 2002 | SAT |
| 257560000 | 30.405970 | -81.546150 | 0 | 17 | 339 | 5 | 2021-10-12T20:11:49 | HOEGH NEW YORK | 70 | Vehicles Carrier | Cargo | 9295830 | LAUA7 | NO | 656 | USJAX | JACKSONVILLE | 277 | USFPO | FREEPORT | 2021-10-09T03:53:00 | US SAV | 2021-10-13T16:00:00 | 2021-10-13T00:43:00 | 199.9 | 32.29 | 85 | 57280 | 200 | USSAV | SAVANNAH | US | 21099 | 2005 | TER |
| 636015992 | 32.333420 | 28.433680 | 156 | 281 | 280 | 0 | 2021-10-12T19:41:33 | CSAV RIO GRANDE | 70 | Vehicles Carrier | Cargo | 9308807 | D5DX3 | LR | NA | NA | NA | 2175 | EGPSD | PORT SAID | 2021-10-12T05:01:00 | LY MRA | 2021-10-15T10:00:00 | 2021-10-14T16:31:00 | 182.8 | 31.53 | 86 | 46800 | 2509 | LYMRA | MISURATA | LY | 12260 | 2007 | TER |
names(data)
## [1] "MMSI" "LAT" "LON"
## [4] "SPEED" "HEADING" "COURSE"
## [7] "STATUS" "TIMESTAMP" "SHIPNAME"
## [10] "SHIPTYPE" "TYPE_NAME" "AIS_TYPE_SUMMARY"
## [13] "IMO" "CALLSIGN" "FLAG"
## [16] "PORT_ID" "PORT_UNLOCODE" "CURRENT_PORT"
## [19] "LAST_PORT_ID" "LAST_PORT_UNLOCODE" "LAST_PORT"
## [22] "LAST_PORT_TIME" "DESTINATION" "ETA"
## [25] "ETA_CALC" "LENGTH" "WIDTH"
## [28] "DRAUGHT" "GRT" "NEXT_PORT_ID"
## [31] "NEXT_PORT_UNLOCODE" "NEXT_PORT_NAME" "NEXT_PORT_COUNTRY"
## [34] "DWT" "YEAR_BUILT" "DSRC"
library(ggplot2)
library("rnaturalearth")
library("rnaturalearthdata")
data$LAT <- as.integer(data$LAT)
data$LON <- as.integer(data$LON)
world <- ne_countries(scale = "medium", returnclass = "sf")
ggplot(data = world) + geom_sf() +
geom_point(data = data, aes(x= LON, y=LAT), color = "#e60000") +
geom_text(data= data ,aes(x= LON, y=LAT, label=SHIPNAME),
color = "darkblue", fontface = "bold", size = 3, check_overlap = TRUE)