他,
我想用CAT和LAT / LNG坐标绘制一个Countrymap。我必须将lat / lng翻译成像素,最好的方法是什么?我可以绘制'地图',但它非常小,而且它不在窗口的中心。
有人可以帮忙吗?我有这段代码:
void draw(Graphics g, PointF[] points, Pen p)
{
Graphics gfx = g;
gfx.PageUnit = GraphicsUnit.Point;
GraphicsPath gpath = new GraphicsPath();
gpath.StartFigure();
gpath.AddLines(points);
gpath.CloseFigure();
Matrix m = new Matrix();
m.Scale(5, 5);
gfx.Transform = m;
gfx.DrawPath(p, gpath);
gfx.Dispose();
gpath.Dispose();
return;
}
答案 0 :(得分:0)
您需要选择地图投影(例如墨卡托,圆柱等面积或Mollweide),然后转换地理纬度,LNG的坐标以使用此投影。
标准的开源库是proj.4。我知道有C#包装器,我个人已经使用OGR和ogrsharp包装器。 OGR在内部使用proj.4,但是当你想使用特定的坐标系(例如在prj文件中定义)时,它还会添加许多使用过的函数。