Skip to content

Add KML export for Google Earth visualization#17

Open
Copilot wants to merge 6 commits intomasterfrom
copilot/suggest-new-feature
Open

Add KML export for Google Earth visualization#17
Copilot wants to merge 6 commits intomasterfrom
copilot/suggest-new-feature

Conversation

Copy link
Contributor

Copilot AI commented Nov 1, 2025

Feature Implementation: KML Export for Google Earth

Implementing KML (Keyhole Markup Language) export functionality to visualize AIS vessel tracks in Google Earth, as mentioned in the project roadmap.

Implementation Plan:

  • Create KMLExporter class to export AISTrack data to KML format
  • Add method to export single track as KML Placemark
  • Add method to export collection of tracks as KML Document
  • Include vessel metadata (name, MMSI, callsign, ship type, speed, course)
  • Add position history visualization (LineString for track history)
  • Create comprehensive unit tests for KML generation (19 tests)
  • Add demo application showing KML export usage
  • Update README with KML export documentation and examples
  • Update module-info.java to export new package (module descriptor removed in master)
  • Update .gitignore to exclude generated KML files
  • Address code review feedback
  • Merge master branch changes (Guava 32.0.0, copilot instructions, module descriptor removal)
  • Merge latest master: version 1.1.5 and aismessages 4.1.2 update

Technical Details:

  • Generates valid KML 2.2 XML format
  • Uses vessel position as placemark location
  • Includes comprehensive vessel details in description
  • Handles missing data gracefully with defensive coding
  • Follows existing code patterns and style
  • All 112 tests pass (93 existing + 19 new)
  • Code review issues resolved
  • Up to date with master: version 1.1.5, aismessages 4.1.2, Guava 32.0.0-jre
Original prompt

Suggest new feature


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 3 commits November 1, 2025 18:54
Co-authored-by: tbsalling <669154+tbsalling@users.noreply.github.com>
Co-authored-by: tbsalling <669154+tbsalling@users.noreply.github.com>
Co-authored-by: tbsalling <669154+tbsalling@users.noreply.github.com>
Copilot AI changed the title [WIP] Add new feature suggestion functionality Add KML export for Google Earth visualization Nov 1, 2025
Copilot AI requested a review from tbsalling November 1, 2025 18:58
@tbsalling
Copy link
Owner

@copilot Show a snippet of kml produced by this new exporter?

Copy link
Contributor Author

Copilot AI commented Nov 16, 2025

@copilot Show a snippet of kml produced by this new exporter?

Here's a sample KML output generated from two AIS vessels:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
  <name>AIS Vessel Tracks</name>
  <description>Vessel positions from AIS data</description>
  <Placemark>
    <name>MMSI 576048000</name>
    <description><![CDATA[
      <b>MMSI:</b> 576048000<br/>
      <b>Transponder Class:</b> A<br/>
      <b>Position:</b> 37.912167, -122.422989<br/>
      <b>Speed:</b> 6.6 knots<br/>
      <b>Course:</b> 350.0°<br/>
      <b>Heading:</b> 355°<br/>
      <b>Last Update:</b> 2025-11-16T08:52:17.831436501Z<br/>
    ]]></description>
    <Point>
      <coordinates>-122.422989,37.912167,0</coordinates>
    </Point>
  </Placemark>
  <Placemark>
    <name>FOURTH QUARTER</name>
    <description><![CDATA[
      <b>MMSI:</b> 367524080<br/>
      <b>Callsign:</b> WDG3250<br/>
      <b>Vessel Name:</b> FOURTH QUARTER<br/>
      <b>Ship Type:</b> Towing<br/>
      <b>Transponder Class:</b> A<br/>
      <b>Position:</b> 30.048880, -90.567841<br/>
      <b>Speed:</b> 0.0 knots<br/>
      <b>Course:</b> 226.3°<br/>
      <b>Last Update:</b> 2025-11-16T08:52:17.824846429Z<br/>
      <b>Dimensions:</b> Length 21m (Beam 8m)<br/>
    ]]></description>
    <Point>
      <coordinates>-90.567841,30.048880,0</coordinates>
    </Point>
  </Placemark>
</Document>
</kml>

Each vessel is represented as a KML Placemark with:

  • Position (Point geometry with longitude, latitude coordinates)
  • Rich metadata in the description (MMSI, name, callsign, ship type, speed, course, heading, dimensions, timestamp)
  • Vessel name (or MMSI if name unavailable) as the placemark title

The KML is compatible with Google Earth and other KML viewers.

@tbsalling tbsalling marked this pull request as ready for review February 11, 2026 06:57
@tbsalling
Copy link
Owner

@copilot resolve merge conflicts

Co-authored-by: tbsalling <669154+tbsalling@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 11, 2026

@copilot resolve merge conflicts

Merge conflicts resolved in commit bc6e040. The conflicts were:

  1. module-info.java - Removed (master deleted it, feature branch modified it)
  2. pom.xml - Guava dependency updated to 32.0.0-jre
  3. .github/copilot-instructions.md - Updated with Java 21 best practices

All 112 tests pass successfully after the merge.

@tbsalling
Copy link
Owner

@copilot merge the master branch into this feature branch

Copy link
Contributor Author

Copilot AI commented Feb 11, 2026

@copilot merge the master branch into this feature branch

Master branch merged in commit bc3bad8. Changes include:

  • Version updated to 1.1.5
  • aismessages dependency updated from 4.1.0 to 4.1.2
  • README version examples updated

All 112 tests pass successfully.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants