/// <summary> /// Create a new Overpass query result. /// </summary> /// <param name="OverpassQuery">The original Overpass query.</param> /// <param name="Result">An OverpassAPI result.</param> public OverpassResult(OverpassQuery OverpassQuery, JObject Result) { Query = OverpassQuery; Version = Result["version"].ToString(); Generator = Result["generator"].ToString(); Copyright = Result["osm3s"]["copyright"].ToString(); timestamp_osm_base = DateTime.Parse(Result["osm3s"]["timestamp_osm_base"].ToString()); timestamp_areas_base = Result["osm3s"]["timestamp_areas_base"] != null ? new Nullable <DateTime>(DateTime.Parse(Result["osm3s"]["timestamp_areas_base"].ToString())) : null; Elements = Result["elements"].Children <JObject>().ToArray(); }
/// <summary> /// Standard workflow... /// </summary> /// <param name="OverpassQuery">An Overpass query.</param> /// <param name="FilenamePrefix">A file name prefix.</param> public static void RunAll(this OverpassQuery OverpassQuery, String FilenamePrefix, PgpSecretKey SecretKey, String Passphrase) { OverpassQuery. ToFile(FilenamePrefix + ".json"). ToGeoJSONFile(FilenamePrefix + ".geojson"). SignGeoJSON(FilenamePrefix + ".geojson.sig", SecretKey, Passphrase). SignGeoJSON(FilenamePrefix + ".geojson.bsig", SecretKey, Passphrase, ArmoredOutput: false). ContinueWith(task => Console.WriteLine(FilenamePrefix + ".* files are ready!")). Wait(); }
/// <summary> /// Run the given Overpass query and convert the result to GeoJSON. /// </summary> /// <param name="OverpassQuery">An Overpass query.</param> public static Task <JObject> ToGeoJSON(this OverpassQuery OverpassQuery) { return(OverpassQuery. RunQuery(). ToGeoJSON()); }
/// <summary> /// Run the given Overpass query, cenvert the result to GeoJSON and write it to the given file. /// </summary> /// <param name="OverpassQuery">An Overpass query.</param> /// <param name="Filename">A file name.</param> public static Task <JObject> ToGeoJSONFile(this OverpassQuery OverpassQuery, String Filename) { return(OverpassQuery. RunQuery(). ToGeoJSONFile(Filename)); }
/// <summary> /// Run the given Overpass query and write the result to the given file. /// </summary> /// <param name="OverpassQuery">An Overpass query.</param> /// <param name="Filename">A file name.</param> public static Task <OverpassResult> ToFile(this OverpassQuery OverpassQuery, String Filename) { return(OverpassQuery. RunQuery(). ToFile(Filename)); }