Update README with project details and setup instructions; add data directories to .gitignore

This commit is contained in:
Leonid Pershin
2026-08-16 17:09:16 +03:00
parent 9d09d6e97f
commit 8460921bfa
73 changed files with 6978 additions and 1 deletions
@@ -0,0 +1,29 @@
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using TheLivingWorld.Osm.Import;
using TheLivingWorld.Osm.Overpass;
namespace TheLivingWorld.Osm;
public static class OsmServiceCollectionExtensions
{
/// <summary>
/// Registers the OpenStreetMap import pipeline. The returned builder is the Overpass HTTP client, which
/// callers usually need to adjust: Overpass queries run for minutes and do not fit default HTTP policies.
/// </summary>
public static IHttpClientBuilder AddOsmImport(this IServiceCollection services, IConfiguration configuration)
{
services.AddOptions<OsmOptions>()
.Bind(configuration.GetSection(OsmOptions.SectionName));
services.AddSingleton<OsmWorldBuilder>();
services.AddSingleton<OsmWorldGenerator>();
return services.AddHttpClient<OverpassClient>(OverpassClient.HttpClientName, static (provider, client) =>
{
var options = provider.GetRequiredService<Microsoft.Extensions.Options.IOptions<OsmOptions>>().Value;
client.Timeout = TimeSpan.FromSeconds(options.RequestTimeoutSeconds);
client.DefaultRequestHeaders.UserAgent.ParseAdd(options.UserAgent);
});
}
}