{{ selectedVessel.name || 'Unnamed vessel' }}
{{ summaryLine }}
{{ selectedVessel.shipTypeLabel }} {{ selectedVessel.speedLabel }} {{ selectedVessel.headingLabel }} {{ selectedVessel.navStatusLabel }}
Vessel lookup
results
km
No vessels found for the current filters. Try widening the type, removing radius limits, or searching by MMSI/IMO.
Fetching AIS snapshot... Showing {{ vessels.length }} vessel{{ vessels.length === 1 ? '' : 's' }}{{ radiusNotice }}
Source: Fintraffic Digitraffic AIS (15 min snapshots)
# Name MMSI / IMO Type Speed / Heading Destination Copy
{{ row.rank }} {{ row.name }} {{ row.identity }} {{ row.type }}
{{ row.speed }}
{{ row.heading }}
{{ row.destination || '-' }}
{{ row.coord }}
No vessels match the current filters.
Loading latest positions...
Open OSM Open Google

                
:

Introduction:

Ship position reports are short broadcasts that describe where a vessel was last seen, how fast it was moving, and the direction it was travelling. If you need ship tracking for Finnish waters, a snapshot list helps you confirm traffic, arrivals, or departures without digging through a full navigation system.

They are most useful when you want a quick check and a consistent way to compare vessels side by side. You can search by a name, a radio callsign, or a numeric identity and then focus on one match to review its latest details.

You provide a term and optional filters for vessel class, motion, and proximity, and you get back a ranked list with position, speed, heading, and destination text when it is reported. When names are similar, matching by an identifier usually produces cleaner results. If you share copied coordinates, consider whether movement details are sensitive.

For example, when a cargo ship is expected near a harbor, set a center point at the harbor, add a radius, and hide stationary vessels to focus on active approaches. If nothing appears, widen the filters, try a different match field, or search by an identifier to avoid name lookalikes. A snapshot can lag behind real movement, so treat small differences as normal noise rather than a sudden change.

Technical Details:

Automatic Identification System (AIS) messages are periodic broadcasts from vessels that include identity fields and dynamic navigation data. This tool queries a Fintraffic Digitraffic snapshot service that refreshes about every 15 minutes and returns a point geometry for each vessel.

Identity fields can include the Maritime Mobile Service Identity (MMSI), the International Maritime Organization (IMO) number, a radio callsign, and the vessel name. The core position fields are latitude and longitude in decimal degrees, and motion fields such as Speed Over Ground (SOG) and Course Over Ground (COG) describe movement over the Earth surface.

The page converts speed from knots to kilometers per hour, derives readable labels from navigation status and ship type codes, and can estimate distance from an optional center point. With a center point set, results are sorted by proximity, and a positive radius keeps only vessels within that distance.

Ship type filters use numeric code bands such as cargo 70 to 79 and tanker 80 to 89, including a Service and Search and Rescue (SAR) group. Because the feed is a snapshot, treat each row as the latest reported state rather than a continuous track, and expect gaps or stale values.

Processing pipeline

  1. Normalize the search term and auto-detect MMSI or IMO by digit count.
  2. Build a server query that matches identity fields and optional ship type bands.
  3. Optionally add a motion clause that requires SOG greater than zero.
  4. Fetch snapshot features with geometry returned in spatial reference 4326.
  5. Decorate each feature with formatted labels, unit conversions, and coordinates.
  6. Optionally compute distance and apply a radius filter from the center point.
  7. Sort by distance when a center exists, otherwise sort by vessel name.

Great circle distance used for radius filtering

φ1 = lat1×π180 φ2 = lat2×π180 Δφ = (lat2lat1)×π180 Δλ = (lon2lon1)×π180 a = sin(Δφ2) 2 + cos(φ1) × cos(φ2) × sin(Δλ2) 2 c = 2×atan2(a,1a) d = R×c
Symbols and units for the distance and speed calculations
Symbol Meaning Unit or Datatype Source
lat, lon Latitude and longitude in decimal degrees number Input
φ, λ Latitude and longitude in radians rad Derived
R Earth radius used by the Haversine calculation km Constant
d Great circle distance between center and vessel km Derived
v Speed Over Ground converted from knots to kilometers per hour km/h Derived

Worked example using a center point of 60.2000, 25.0000 and a vessel position of 60.2500, 25.1000.

Δφ=(60.250060.2000)×π180=0.0008726646
Δλ=(25.100025.0000)×π180=0.0017453293
a=3.7819×107
c=0.0012299392
d=6371×0.0012299392=7.8359 km7.8 km

If the radius is 10 km, this vessel is included. If the radius is 5 km, it is excluded.

Ship type groups used by the filter

AIS ship type group rules used for filtering
Group Ship type rule What it represents
Cargo 70 to 79 General cargo and related cargo classes
Tanker 80 to 89 Liquid cargo tankers
Passenger 60 to 69 Passenger vessels
High speed craft 40 to 49 High speed craft classes
Service and SAR 50 to 59 and 30 to 39 Service and rescue craft, plus workboats and tugs in the 30x range
Fishing 30 Fishing vessels
Sailing and pleasure 36 or 37 Sailing vessels and pleasure craft
Other and undefined 0 or 90+ Undefined type, or types outside the grouped ranges

Heads-up The Service and SAR option also includes ship type codes 30 to 39, which may overlap with fishing and other 30x classes.

Parameters and defaults

Parameters, datatypes, and typical ranges
Parameter Meaning Unit or Datatype Typical range Sensitivity Notes
search_term Text term used to match identity fields or vessel name string Empty or any length High Apostrophes are escaped before querying.
search_mode Match strategy enum auto, mmsi, imo, callsign, name Medium Auto treats 9 digits as MMSI and 7 digits as IMO.
ship_type Ship type group filter enum any, cargo, tanker, passenger, highspeed, service, fishing, pleasure, other Medium Implemented as numeric ship type bands in the query.
limit Maximum number of rows requested from the snapshot integer 1 to 200 Medium Clamped and floored before requests.
hide_stationary Exclude vessels with SOG of zero boolean true or false Low Applied both in the query and in local filtering.
center_lat, center_lng Center point used for sorting and distance filtering number lat −90 to 90, lng −180 to 180 High When set, results are sorted by distance even without a radius.
radius_km Distance cutoff from the center point number greater than 0 High Only applied when a center point is valid.

Constants and conversions

Constants and coefficient values used by the calculations
Constant Value Unit Source Notes
R 6371 km Constant Used by the Haversine distance calculation.
Knots to km/h 1.852 km/h per kn Constant Displayed alongside SOG in knots.

Units, precision, and formatting

  • Coordinates are displayed with 4 decimal places, and the radius notice uses 3 decimals for the center.
  • Speed is shown as whole knots and as km/h with 1 decimal place.
  • Distance to the center point is shown in kilometers with 1 decimal place.
  • Draught is displayed in meters after dividing the reported value by 10.
  • ETA is formatted as a UTC timestamp to the minute when the source field is valid.

Validation and bounds extracted from the code

Validation rules, bounds, and user facing error strings
Field Type Min Max Step or pattern Error text Placeholder
Search term text 0 Auto detects 9 digits as MMSI and 7 digits as IMO, otherwise uses a contains match
MMSI mode accepts 7 to 9 digits after non digits are removed
Provide a valid MMSI/IMO/name or adjust the filters. e.g., 230685000, EVER GIVEN, VRWW4
Result cap number 1 200 Integer, clamped and floored 50
Center latitude number −90 90 Step 0.0001 Latitude
Center longitude number −180 180 Step 0.0001 Longitude
Radius number 0 Step 1, applied only when greater than 0 e.g., 50
Hide stationary boolean Requires SOG greater than 0 Off

Inputs and outputs

Input and output formats supported by the page
Input Accepted families Output Encoding or precision Rounding
Identity term MMSI, IMO, callsign, or a name substring Filtered vessel list Uppercase contains match for text modes Not applicable
Center point and radius Decimal degrees and kilometers Distance labels and radius filtering Distance to 1 decimal Formatter controlled
Snapshot view Current in-memory results Table copy or download, JSON copy or download, DOCX export JSON uses 2-space indentation Not applicable
Map links Latitude and longitude External map URLs for the selected vessel Coordinates URL encoded Not applicable

Time handling for ETA

The ETA field is interpreted as mmddhhmm and converted into a UTC timestamp for the current UTC year, rolling to the next year if the date has already passed.

Networking and storage behavior

  • Snapshot data is requested with fetch from an ArcGIS FeatureServer query endpoint.
  • Map tiles are loaded from the OpenStreetMap tile service when the map view is opened.
  • External map links can open OpenStreetMap and Google Maps in a new tab.
  • No local or session storage calls are present in the provided script.

Performance and determinism

  • Decorating and filtering results is O(n), and sorting is O(n log n) for n returned rows.
  • The result cap limits n to 200, which keeps rendering and exports responsive.
  • For a fixed snapshot response, the same inputs produce the same list ordering.

Security considerations

  • Apostrophes in the search term are escaped by doubling before building the query string.
  • The JSON view inserts highlighted HTML, so it depends on the highlighter to escape values safely.
  • External links use rel="noopener" to reduce cross tab access.
  • Clipboard actions may be blocked by browser permissions, and copied data can be pasted elsewhere.

Assumptions and limitations

  • The snapshot refresh interval is about 15 minutes, so recent maneuvers may not appear yet.
  • Ship names are not guaranteed to be unique, especially across different operators.
  • Heads-up Auto detection treats 7 digits as IMO even if you intended an MMSI.
  • The Service and SAR type option includes ship type codes 30 to 39 in addition to 50 to 59.
  • Heading and COG are shown when present, but they can be stale when a vessel is stopped.
  • Distance uses a spherical Earth approximation, so it is an estimate for short range filtering.
  • Destination and ETA are self reported fields and may be blank or outdated.
  • Map tiles and external map links depend on third party availability and connectivity.
  • This page is not a certified navigation aid and should not be used for collision avoidance.

Edge cases and error sources

  • Vessels may have missing geometry, which disables map actions for that row.
  • Latitude or longitude values that are not finite are treated as unavailable.
  • Duplicate or blank MMSI values can cause selection to fall back to the first row.
  • Non ASCII vessel names can sort differently across locales and devices.
  • Search terms containing quotes are escaped, but unusual punctuation can still reduce matches.
  • Very large radii can include distant vessels and dilute the usefulness of proximity sorting.
  • SOG values can be missing, zero, or inconsistent across receivers, affecting motion filters.
  • Heading values outside 0 to 359 are displayed as received and may map oddly to cardinals.
  • Network errors, CORS blocks, or service throttling surface as request failures.
  • Tile service blocks or mixed network policies can leave the map blank while the table still works.
  • Clipboard writes can fail if the page is not in focus or permission is denied.
  • Export actions can be limited by popup blockers, download policies, or restricted file types.

Standards and references

Conceptually, AIS message fields are defined in ITU-R Recommendation M.1371, timestamps follow ISO 8601 formatting conventions, and the distance estimate uses the standard Haversine formulation on a spherical Earth model.

Privacy and compliance

Vessel movements can be sensitive in some contexts, and your query terms are sent from your browser to the snapshot service and map providers, so follow local policy and data protection guidance.

Step-by-Step Guide:

Vessel position snapshots help you confirm identity, movement, and proximity with a repeatable set of filters.

  1. Enter a vessel identifier or name in Search term.
  2. Choose Match field to auto detect, or force MMSI, IMO, callsign, or name.
  3. Optionally narrow results with Vessel type and adjust Result cap.
  4. Enable Hide stationary to exclude vessels reporting zero speed.
  5. Open Advanced and set Center point plus Radius for local searches.
  6. Run the lookup, then review position, speed, heading, and destination for each match.
  7. Use the map view to confirm location, and copy coordinates when you need to share.
  8. Snapshot delay Expect up to about 15 minutes between feed refreshes.

Example search flow.

  • Search term 230685000
  • Match field Auto detect
  • Vessel type Cargo
  • Center point 60.2000, 25.0000
  • Radius 10 km
  • Hide stationary On

You will see cargo vessels sorted by distance from the center point, limited to those within the radius and reporting movement.

If a 7 digit number is treated as IMO but you meant MMSI, switch Match field to MMSI.
If nothing matches, remove the radius first, then broaden the vessel type filter.
If names are similar, search by MMSI or IMO to avoid duplicates.

Pro tip: for repeated checks, keep the same center point and radius so changes reflect vessel movement rather than changing filters.

Features:

Search by MMSI, IMO, callsign, or vessel name with automatic numeric detection.
Filter by AIS ship type groups and optionally exclude stationary vessels.
Sort by proximity to a center point and optionally limit results by radius.
View a selected vessel on a map and copy its latitude and longitude.
Copy or download the current snapshot as structured data when you need to share.

FAQ:

Is my data stored?

The page sends your search filters to the snapshot endpoint to retrieve matching vessels. The provided script does not write to local or session storage. Remote services and map providers may keep their own access logs.

How fresh are positions?

Results come from a snapshot feed that refreshes about every 15 minutes, so the latest position may lag behind real movement. Treat the timestamped state as last reported, not continuous tracking.

What can I search?

You can search by Maritime Mobile Service Identity (MMSI), International Maritime Organization (IMO) number, callsign, or a vessel name substring. Auto detect uses digit count for MMSI and IMO.

What does hide stationary do?

It removes vessels that report Speed Over Ground (SOG) of zero. This filter is applied in both the server query and the local list.

Can I use it offline?

Lookups require a network connection to fetch the snapshot, and the map view also loads tiles from a separate service. If connectivity drops after a lookup, you may still view the current results.

What is the cost?

The package metadata does not declare pricing or licensing terms. Check the host policy if you need formal reuse guidance.

How do I search callsigns?

Set Match field to callsign, then enter the full callsign or a distinctive fragment. The query uses a case-insensitive contains match, so partial strings can work.

Why Status unknown?

Status unknown means the navigation status code did not match the known set of labels. It can occur when the upstream value is missing, outside the expected range, or uses a reserved code.

Troubleshooting:

  • No vessels found Remove the radius filter, then broaden ship type or search by MMSI or IMO.
  • Map tab disabled The selected row has no valid coordinates, so choose another vessel.
  • Unexpected vessel type Check the ship type group rules and remember some ranges overlap.
  • Copy buttons do nothing Clipboard access may be blocked by permissions or page focus.
  • Exports are empty Run a lookup first and confirm the table contains rows.
  • ETA looks wrong ETA is reported by the vessel and may be missing or outdated.

Advanced Tips:

  • Tip Set a center point even without a radius to sort the list by proximity.
  • Tip Use a smaller radius first, then widen it to see which vessels enter the boundary.
  • Tip Compare successive snapshots by exporting with timestamps, not by reusing old screenshots.
  • Tip For lookalike names, confirm identity with MMSI or IMO before sharing coordinates.
  • Tip Treat heading as a momentary indicator and prefer COG when heading is missing.
  • Tip When motion filters hide too much, disable Hide stationary and sort by distance instead.

Glossary:

AIS
Automatic Identification System, a vessel broadcast system for identity and navigation data.
MMSI
Maritime Mobile Service Identity, a numeric vessel radio identifier.
IMO number
International Maritime Organization identifier, a seven digit vessel number.
SOG
Speed Over Ground, the vessel speed relative to the Earth surface.
COG
Course Over Ground, the direction of travel over the Earth surface.
ETA
Estimated time of arrival, interpreted as month day hour minute and shown in UTC.
Haversine
A spherical formula used to estimate distance between two latitude and longitude points.
Ship type code
A numeric class that groups vessels such as cargo, tanker, or passenger.