我正在尝试将 NTv2 gridshift 包(来自英国军械调查局的 OSTN15)应用于一些 DotSpatial 重新投影。这是我到目前为止的代码:
const string Proj4_4326 = "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs";
const string OSTN15 = @"+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 +x_0=400000 +y_0=-100000 +ellps=airy +units=m +no_defs +nadgrids=D:\directory\OSTN15_NTv2_OSGBtoETRS.gsb";
static void Main(string[] args)
{
double[] polygonPoints = new double[2] { 530624.974, 178388.464 };
double[] zp = new double[10];
ProjectionInfo srcProjection = ProjectionInfo.FromProj4String(OSTN15);
ProjectionInfo desProjection = ProjectionInfo.FromProj4String(Proj4_4326);
GridShift.InitializeExternalGrids(@"D:\directory\OSTN15-NTv2", false);
Reproject.ReprojectPoints(polygonPoints, zp, srcProjection, desProjection, 0, 1);
}
代码到达“Gridshift.InitializeExternalGrids”和“挂起”。它似乎正在处理,但 40 分钟后它已使用 2G RAM 和大约 25% 的 CPU 使用率。
我假设初始化网格不应该花这么长时间,而且出了点问题。
我正在使用使用 NuGet 添加的 DotSpatial.Projections 1.9.0,除了此代码之外,项目中没有其他内容,它是一个 .NET Framework 4.7.2 控制台应用程序,x64 平台目标(我也尝试过 x86)。
有没有其他人有这个问题或可以提供任何建议。谢谢。