Geocoding.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System;
  2. using System.Collections.Generic;
  3. namespace ARLocation.MapboxRoutes
  4. {
  5. using Vendor.SimpleJSON;
  6. [Serializable]
  7. public class GeocodingFeature
  8. {
  9. public string text;
  10. public string place_name;
  11. public float relevance;
  12. public Route.Geometry geometry;
  13. public static GeocodingFeature Parse(JSONNode n)
  14. {
  15. var result = new GeocodingFeature{};
  16. result.text = n["text"];
  17. result.place_name = n["place_name"];
  18. result.relevance = n["relevance"].AsFloat;
  19. result.geometry = Route.Geometry.Parse(n["geometry"]);
  20. return result;
  21. }
  22. public override string ToString()
  23. {
  24. return $"GeocodingFeature{{ text = {text}, place_name = {place_name}, relevance = {relevance}, geometry = {geometry} }}";
  25. }
  26. }
  27. [Serializable]
  28. public class GeocodingResponse
  29. {
  30. public List<GeocodingFeature> features = new List<GeocodingFeature>();
  31. public static GeocodingResponse Parse(string s)
  32. {
  33. return Parse(JSON.Parse(s));
  34. }
  35. public static GeocodingResponse Parse(JSONNode n)
  36. {
  37. var result = new GeocodingResponse {};
  38. var features = n["features"].AsArray;
  39. foreach (var f in features)
  40. {
  41. result.features.Add(GeocodingFeature.Parse(f));
  42. }
  43. return result;
  44. }
  45. public override string ToString()
  46. {
  47. return $"Geocoding {{ features = [{string.Join(", ", features)}] }}";
  48. }
  49. }
  50. }