Table of Contents

FAQ

Frequently Asked Questions for PolylineAlgorithm


General

Q: What coordinate ranges are valid?
A: Latitude must be between -90 and 90; longitude must be between -180 and 180. Passing out-of-range values throws ArgumentOutOfRangeException.

Q: Which .NET versions are supported?
A: Any platform supporting netstandard2.1, including .NET Core, .NET 5+, Xamarin, Unity, and Blazor.

Q: Can the library be used in Unity, Xamarin, Blazor, or other .NET-compatible platforms?
A: Yes! Any environment that supports netstandard2.1 can use this library.


Usage & Extensibility

Q: How do I add a new polyline algorithm or coordinate type?
A: Implement your own encoder/decoder using AbstractPolylineEncoder<TCoordinate, TPolyline> and AbstractPolylineDecoder<TPolyline, TCoordinate>. Add unit tests and XML doc comments, then submit a PR.

Q: How do I customize encoding options (e.g., buffer size, logging)?
A: Use PolylineEncodingOptionsBuilder to set options, and pass the result to the encoder or decoder constructor.

Q: Is the library thread-safe?
A: Yes, main encoding/decoding APIs are stateless and thread-safe. If you extend using shared mutable resources, ensure proper synchronization.

Q: What happens if I pass invalid or malformed input to the decoder?
A: The decoder throws descriptive exceptions for malformed polyline strings. Ensure proper exception handling in your application.

Q: Does the library support streaming or incremental decoding of polylines?
A: Currently, only batch encode/decode is supported. For streaming scenarios, implement your own logic using PolylineEncoding utilities.


Features & Support

Q: Is there support for elevation, timestamps, or third coordinate values?
A: Not currently, and not planned for the core library. You may implement your own encoder/decoder using PolylineEncoding methods for extended coordinate data.

Q: How do I contribute documentation improvements?
A: Update XML doc comments in the codebase and submit a pull request. To improve guides, update relevant markdown files in /api-reference/guide.

Q: Where can I report bugs or request features?
A: Open a GitHub issue using the provided templates and tag @petesramek.


Documentation & Community

Q: Where can I find detailed API documentation?
A: API Reference

Q: How do I contribute?
A: Read CONTRIBUTING.md, follow coding style and testing guidelines, and use issue/PR templates.

Q: Need more help?
A: Open an issue in the GitHub repository.