在.net环境中使用Mapnik

时间:2011-03-28 22:10:37

标签: c# .net mapnik

是否有人使用Mapnik从.net c#environment渲染地图?我想用它来在.net4下开发的桌面应用程序中渲染地图。我发现它是最好的开源地图渲染工具,比众所周知的sharpmap(dotpatial(...)更好)。 “唯一”的问题是它是用C ++和Python编写的,并没有从C#中使用它的简单方法。

你知道任何.net Mapnik包装器吗?你知道任何示例代码吗?

5 个答案:

答案 0 :(得分:5)

我刚刚发布了C#绑定的尝试 它们位于:http://sourceforge.net/projects/mapniknet/

答案 1 :(得分:2)

关于Mapnik-.Net集成的一些好消息:

“帮助Windows开发人员的另一件事是从.Net语言中使用Mapnik的方法。虽然完整的.Net包装器除了所有其他问题外还有太多工作,希望我能做一个有意义的开始和打开.Net开发人员在其应用程序中利用Mapnik的大门。“

来源:Mapnik主页http://mapnik.org/news/2011/jun/09/gsoc_2011_windows_build_system_introduction/

答案 2 :(得分:2)

NET-Mapnik的

您可能想尝试一下。它是最近的,有一个简单的例子,可以选择创建矢量图块 https://github.com/kernelsanders/NET-Mapnik

答案 3 :(得分:1)

所以,最后我砍了它。不是一个好的解决方案,但它至少起作用。简而言之,它以下列方式运作:

  • 开发了一个python脚本,它将参数作为命令行参数。 (使用mapnik的python api)
  • 通过shell fom c#code(Process)
  • 调用此python脚本
  • 生成地图图像后,我在SharpMap中将其显示为背景图层

如果有任何地图刷新(缩放,平移),我会重新生成'mapnik地图图层'。我还有一些缓存,我可以在其中存储生成的地图,因此我可以通过使用先前生成的地图图像或预先生成它们来制作技巧(例如,当用户使用缩放工具时生成下一个缩放级别的地图)。我也使用一些异步调用来执行此操作,因此我可以并行地创建1-3个地图图像。

这个解决方案的弱点是python和c#模块之间的通信。我找不到比命令行参数+ shell更好的东西。

我的解决方案有效,mapnik很快,可以在不到一秒的时间内完成我的地图。

如果您对.net - python通信有任何建议(没有ironpython,它不适合manik api),请写在这里。 THX。

答案 4 :(得分:-1)

你知道TAO项目吗? 它是一个.Net项目,通过在C#中调用DllIMport()将非托管opengle库转换为.Net Managed Form。

你必须为Mapnik,simaliar到TAOFramework.net

这样做