< Summary

Class:Itinero.IO.Json.GeoJson.GeoJsonExtensions
Assembly:Itinero
File(s):/home/runner/work/routing2/routing2/src/Itinero/IO/Json/GeoJson/GeoJsonExtensions.cs
Covered lines:0
Uncovered lines:55
Coverable lines:55
Total lines:122
Line coverage:0% (0 of 55)
Covered branches:0
Total branches:6
Branch coverage:0% (0 of 6)
Tag:224_14471318300

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
WriteFeatureCollectionStart(...)100%10%
WriteFeatureCollectionEnd(...)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/IO/Json/GeoJson/GeoJsonExtensions.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using System.Text.Json;
 3
 4namespace Itinero.IO.Json.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 feature start.
 35    /// </summary>
 36    /// <param name="jsonWriter">The json writer.</param>
 37    public static void WriteFeatureStart(this Utf8JsonWriter jsonWriter)
 038    {
 039        jsonWriter.WriteStartObject();
 040        jsonWriter.WriteString("type", "Feature");
 041    }
 42
 43    /// <summary>
 44    /// Writes feature end.
 45    /// </summary>
 46    /// <param name="jsonWriter">The json writer.</param>
 47    public static void WriteFeatureEnd(this Utf8JsonWriter jsonWriter)
 048    {
 049        jsonWriter.WriteEndObject();
 050    }
 51
 52    /// <summary>
 53    /// Writes a point.
 54    /// </summary>
 55    /// <param name="jsonWriter">The json writer.</param>
 56    /// <param name="location">The location.</param>
 57    public static void WritePoint(this Utf8JsonWriter jsonWriter,
 58        (double longitude, double latitude, float? e) location)
 059    {
 060        jsonWriter.WriteStartObject();
 061        jsonWriter.WriteString("type", "Point");
 062        jsonWriter.WritePropertyName("coordinates");
 63
 064        jsonWriter.WriteStartArray();
 065        jsonWriter.WriteNumberValue(location.longitude);
 066        jsonWriter.WriteNumberValue(location.latitude);
 067        if (location.e != null)
 068        {
 069            jsonWriter.WriteNumberValue(location.e.Value);
 070        }
 71
 072        jsonWriter.WriteEndArray();
 073        jsonWriter.WriteEndObject();
 074    }
 75
 76    /// <summary>
 77    /// Writes a line string.
 78    /// </summary>
 79    /// <param name="jsonWriter">The json writer.</param>
 80    /// <param name="coordinates">The coordinates.</param>
 81    public static void WriteLineString(this Utf8JsonWriter jsonWriter,
 82        IEnumerable<(double longitude, double latitude, float? e)> coordinates)
 083    {
 084        jsonWriter.WriteStartObject();
 085        jsonWriter.WriteString("type", "LineString");
 086        jsonWriter.WritePropertyName("coordinates");
 87
 088        jsonWriter.WriteStartArray();
 089        foreach (var c in coordinates)
 090        {
 091            jsonWriter.WriteStartArray();
 092            jsonWriter.WriteNumberValue(c.longitude);
 093            jsonWriter.WriteNumberValue(c.latitude);
 94            //                    if (route.Shape[i].Elevation.HasValue)
 95            //                    {
 96            //                        jsonWriter.WriteArrayValue(route.Shape[i].Elevation.Value.ToInvariantString());
 97            //                    }
 098            jsonWriter.WriteEndArray();
 099        }
 100
 0101        jsonWriter.WriteEndArray();
 0102        jsonWriter.WriteEndObject();
 0103    }
 104
 105    /// <summary>
 106    /// Writes properties.
 107    /// </summary>
 108    /// <param name="jsonWriter">The json writer.</param>
 109    /// <param name="attributes">The attributes to write as properties.</param>
 110    public static void WriteProperties(this Utf8JsonWriter jsonWriter,
 111        IEnumerable<(string key, string value)> attributes)
 0112    {
 0113        jsonWriter.WritePropertyName("properties");
 0114        jsonWriter.WriteStartObject();
 0115        foreach (var a in attributes)
 0116        {
 0117            jsonWriter.WriteString(a.key, a.value);
 0118        }
 119
 0120        jsonWriter.WriteEndObject();
 0121    }
 122}