Hello Val,
thanks for sample code. There was a little bug in the code, but after changig the line you can see in the attached code the projection class works fine. As you can see in the screenshot there are only some parts they show some inaccuracies.
As conclusion of our test I think the projection algorithm of Proj4Projection and ManagedProj4Projection class from GaussKruger (EPSG 31467) to Google works not correct. I don't know whats going on in Projection class and how you project data between different projections but I think if you compare the original projection code and the version we do it in our custom projection class you would be able to find the bug.
I would prefer a fixed version of ManagedProj4Projection class because our custom class has to do two projection steps. I think this is not the fastest solution.
Thomas

protected override Vertex[] ConvertToInternalProjectionCore(double[] x, double[] y)
{
Vertex[] vertices = new Vertex[x.Length];
WGS84ToGoogleprog4.Open();
for (int i = 0; i < vertices.Length; i++)
{
vertices[i] = WGS84ToGoogleprog4.ConvertToInternalProjection(x[i], y[i]);
}
WGS84ToGoogleprog4.Close();
GaussKrugerToWGS84proj4.Open();
for (int i = 0; i < vertices.Length; i++)
{
vertices[i] = GaussKrugerToWGS84proj4.ConvertToInternalProjection(vertices[i].X, vertices[i].Y);
}
GaussKrugerToWGS84proj4.Close();
return vertices;
}