All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Ability to provide your own stream for Kmz operations (thanks @p-skakun)
- Non standard parsing of coordinates where the altitude is NaN
- Updated the .NET Framework to the minimum version still in support (.NET 4.6.2)
- Parsing of coordinates with a separator but with the altitude missing.
- New overload of
RemoveFeature
to allow the removal by reference
- Prefixes for nested elements are now correctly used
- SourceLink information for NuGet packages
- Additional argument validation
- Ignore leading whitespace when parsing
Color32
- Additional argument validation
Parser.Parse
can now be made to parse legacy KML files
- Serialization of decimal values is now consistent across cultures
- Serialization of elements should match the order in the specification
- Collection classes are now sealed
- Ignore DTD processing when reading the XML
- New constructor to
Serializer
that can be used to specify options for when floating numbers are serialized
- Parsing of decimal degrees with large numbers of digits
- Parsing is now more performant (up to 50% in certain scenarios)
- Parsing/serialization now only supports properties on
Element
s with both getters and setters - Parsing of coordinate collections now stops further processing if the correct tuple separator (whitespace) is not present
- Extension elements can now be used in derived classes
KmlFactory
can now register additional valid child types
- Element children are stored in serialization order (slightly improves parsing/serialization performance)
- Element children are now exposed publicly
- Registered types can now be replaced (via
KmlFactory.Replace
)
- All classes representing KML elements are no longer marked as
sealed
- Reduced memory usage for large files with lots of elements (thanks @sylvaneau)
- Arithmetic operators for the Vector class (thanks @MikDal002)
- Fix for #8
- When serializing, prefixes are not used if the namespace of the element matches the default namespace in scope.
- Support for .NET 4.5
- Fix for #5
- SimpleArrayData was trying to return the inner text of the created elements, however, it hadn't copied it across from the UnknownElement. This has been fixed so now the nested values can be retrieved.
- SimpleArrayData didn't have any values if namespaces were being ignored during parsing - this has now been fixed.
- Fix for #4
- For improved compatibility with Google Earth,
innerBoundaryIs
with multipleLinearRing
elements (which is invalid) is now handled without loss of information. - Made
Element.AddChild
virtual - Modified
InnerBoundary
to check if it already has aLinearRing
set - if it does then it will try to add a newInnerBoundary
to its parent
- For improved compatibility with Google Earth,
- Updated package to target .NET Standard 1.2
- Changed license from MS-PL to MIT