< Summary

Class:Itinero.MapMatching.IO.GeoJson.GeoJsonExtensions
Assembly:Itinero.MapMatching
File(s):/home/runner/work/routing2/routing2/src/Itinero.MapMatching/IO/GeoJson/GeoJsonExtensions.cs
Covered lines:0
Uncovered lines:58
Coverable lines:58
Total lines:127
Line coverage:0% (0 of 58)
Covered branches:0
Total branches:6
Branch coverage:0% (0 of 6)
Tag:251_23667616543

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
WriteFeatureCollectionStart(...)100%10%
WriteFeatureCollectionEnd(...)100%10%
WriteGeometryStart(...)100%10%
WriteFeatureStart(...)100%10%
WriteFeatureEnd(...)100%10%
WritePoint(...)0%20%
WriteLineString(...)0%20%
WriteProperties(...)0%20%

File(s)

/home/runner/work/routing2/routing2/src/Itinero.MapMatching/IO/GeoJson/GeoJsonExtensions.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using System.Text.Json;
 3
 4namespace Itinero.MapMatching.IO.GeoJson;
 5
 6/// <summary>
 7/// Geojson writing extensions.
 8/// </summary>
 9public static class GeoJsonExtensions
 10{
 11    /// <summary>
 12    /// Writes feature collection start.
 13    /// </summary>
 14    /// <param name="jsonWriter">The json writer.</param>
 15    public static void WriteFeatureCollectionStart(this Utf8JsonWriter jsonWriter)
 016    {
 017        jsonWriter.WriteStartObject();
 018        jsonWriter.WriteString("type", "FeatureCollection");
 019        jsonWriter.WritePropertyName("features");
 020        jsonWriter.WriteStartArray();
 021    }
 22
 23    /// <summary>
 24    /// Writes feature collection end.
 25    /// </summary>
 26    /// <param name="jsonWriter">The json writer.</param>
 27    public static void WriteFeatureCollectionEnd(this Utf8JsonWriter jsonWriter)
 028    {
 029        jsonWriter.WriteEndArray();
 030        jsonWriter.WriteEndObject();
 031    }
 32
 33    /// <summary>
 34    /// Writes a geometry start.
 35    /// </summary>
 36    /// <param name="jsonWriter">The json writer.</param>
 37    public static void WriteGeometryStart(this Utf8JsonWriter jsonWriter)
 038    {
 039        jsonWriter.WritePropertyName("geometry");
 040    }
 41
 42    /// <summary>
 43    /// Writes a feature start.
 44    /// </summary>
 45    /// <param name="jsonWriter">The json writer.</param>
 46    public static void WriteFeatureStart(this Utf8JsonWriter jsonWriter)
 047    {
 048        jsonWriter.WriteStartObject();
 049        jsonWriter.WriteString("type", "Feature");
 050    }
 51
 52    /// <summary>
 53    /// Writes feature end.
 54    /// </summary>
 55    /// <param name="jsonWriter">The json writer.</param>
 56    public static void WriteFeatureEnd(this Utf8JsonWriter jsonWriter)
 057    {
 058        jsonWriter.WriteEndObject();
 059    }
 60
 61    /// <summary>
 62    /// Writes a point.
 63    /// </summary>
 64    /// <param name="jsonWriter">The json writer.</param>
 65    /// <param name="location">The location.</param>
 66    public static void WritePoint(this Utf8JsonWriter jsonWriter,
 67        (double longitude, double latitude, float? e) location)
 068    {
 069        jsonWriter.WriteStartObject();
 070        jsonWriter.WriteString("type", "Point");
 071        jsonWriter.WritePropertyName("coordinates");
 72
 073        jsonWriter.WriteStartArray();
 074        jsonWriter.WriteNumberValue(location.longitude);
 075        jsonWriter.WriteNumberValue(location.latitude);
 076        if (location.e != null)
 077        {
 078            jsonWriter.WriteNumberValue(location.e.Value);
 079        }
 80
 081        jsonWriter.WriteEndArray();
 082        jsonWriter.WriteEndObject();
 083    }
 84
 85    /// <summary>
 86    /// Writes a line string.
 87    /// </summary>
 88    /// <param name="jsonWriter">The json writer.</param>
 89    /// <param name="coordinates">The coordinates.</param>
 90    public static void WriteLineString(this Utf8JsonWriter jsonWriter,
 91        IEnumerable<(double longitude, double latitude, float? e)> coordinates)
 092    {
 093        jsonWriter.WriteStartObject();
 094        jsonWriter.WriteString("type", "LineString");
 095        jsonWriter.WritePropertyName("coordinates");
 96
 097        jsonWriter.WriteStartArray();
 098        foreach (var c in coordinates)
 099        {
 0100            jsonWriter.WriteStartArray();
 0101            jsonWriter.WriteNumberValue(c.longitude);
 0102            jsonWriter.WriteNumberValue(c.latitude);
 0103            jsonWriter.WriteEndArray();
 0104        }
 105
 0106        jsonWriter.WriteEndArray();
 0107        jsonWriter.WriteEndObject();
 0108    }
 109
 110    /// <summary>
 111    /// Writes properties.
 112    /// </summary>
 113    /// <param name="jsonWriter">The json writer.</param>
 114    /// <param name="attributes">The attributes to write as properties.</param>
 115    public static void WriteProperties(this Utf8JsonWriter jsonWriter,
 116        IEnumerable<(string key, string value)> attributes)
 0117    {
 0118        jsonWriter.WritePropertyName("properties");
 0119        jsonWriter.WriteStartObject();
 0120        foreach (var a in attributes)
 0121        {
 0122            jsonWriter.WriteString(a.key, a.value);
 0123        }
 124
 0125        jsonWriter.WriteEndObject();
 0126    }
 127}