I looked for a free API solution to access machine readable AIS Data. This solution uses the free web solutions to crawl the data and returns them in json.
This is a nodejs web app.
Takes position from MT and from VT and returns the newest example: http://localhost:5000/getLastPosition/211281610
Returns position from VF example: http://localhost:5000/getLastPositionFromVF/211281610
Returns position from MT example: http://localhost:5000/getLastPositionFromMT/211281610
Returns all vessels in area, defined by a list of area keywords example: http://localhost:5000/getVesselsInArea/WMED,EMED
[{
name: vessel.SHIPNAME,
id: vessel.SHIP_ID,
lat: Number(vessel.LAT),
lon: Number(vessel.LON),
timestamp: vessel.LAST_POS,
mmsi: vessel.MMSI,
imo: vessel.IMO,
callsign: vessel.CALLSIGN,
speed: Number(vessel.SPEED),
area: vessel.AREA_CODE,
type: vessel.TYPE_SUMMARY,
country: vessel.COUNTRY,
destination: vessel.DESTINATION,
port_current_id: vessel.PORT_ID,
port_current: vessel.CURRENT_PORT,
port_next_id: vessel.NEXT_PORT_ID,
port_next: vessel.NEXT_PORT_NAME,
},…]
Returns all vessels in a port, named after the MT nomenclature example: http://localhost:5000/getVesselsInPort/piraeus
Output format identical to getVesselsInArea
Requirements: npm & nodejs.
-
clone this repo
-
run
npm install
-
run
node index.js
Requirements: docker
-
docker build -t ais-api .
-
docker run -p 5000:5000 ais-api
This application can be easily deployed to heroku, simply install the heroku cli and run the following commands:
heroku create
git push heroku master