14

.net c# 環境からマップをレンダリングするためにMapnikを使用した人はいますか? .net4 で開発されたデスクトップ アプリケーションでマップをレンダリングするために使用したいと考えています。私はこれが最高のオープン ソース マップ レンダラー ツールであり、よく知られている Sharpmap である dotspatial (...) よりもはるかに優れていることがわかりました。「唯一の」問題は、C++ と Python で書かれており、C# から簡単に使用する方法がないことです。

.net Mapnik ラッパーを知っていますか? サンプルコードを知っていますか?

4

5 に答える 5

5

C#バインディングでの試みを公開しました。
それらは次の場所で入手できます: http://sourceforge.net/projects/mapniknet/

于 2011-09-10T10:21:27.270 に答える
2

NET-Mapnik

これを試してみてください。そのかなり最近のもので、ベクター タイルを作成するオプションを備えた簡単な例があります。
https://github.com/kernelsanders/NET-Mapnik

于 2014-09-10T18:02:32.017 に答える
2

Mapnik と .Net の統合に関するいくつかの良いニュース:

「Windows 開発者を助けるもう 1 つのことは、.Net 言語から Mapnik を使用する方法です。他のすべての問題に加えて、完全な .Net ラッパーを作成するのは大変な作業ですが、有意義なスタートを切り、.Net 開発者に扉を開くことができれば幸いです。アプリケーションで Mapnik を活用するためです。」

出典: Mapnik ホームページhttp://mapnik.org/news/2011/jun/09/gsoc_2011_windows_build_system_introduction/

于 2011-06-17T14:43:51.247 に答える
1

それで、ついに私はそれをハッキングしました。良い解決策ではありませんが、少なくとも機能します。簡単に言えば、次のように動作します。

  • コマンドライン引数としてパラメータを取るpythonスクリプトを開発しました。(mapnik の python api を使用)
  • この python スクリプトをシェルから c# コード (プロセス) で呼び出します。
  • マップ画像が生成された後、背景レイヤーとして SharpMap に表示します

マップの更新 (ズーム、パン) の場合は、「mapnik マップ レイヤー」を再生成します。生成されたマップを保存できるある種のキャッシュもあるので、以前に生成されたマップ画像を使用してトリックを作成したり、それらを事前に生成したりできます (たとえば、ユーザーがズーム ツールを使用するときに次のズーム レベルのマップを生成します)。これを行うためにいくつかの非同期呼び出しも使用するため、1 ~ 3 個のマップ イメージを並行して作成できます。

このソリューションの弱点は、python と c# モジュール間の通信です。コマンドライン引数+シェルよりも良いものは見つかりませんでした。

私のソリューションは機能し、mapnik は高速で、1 秒もかからずにマップを生成できます。

.net - python 通信 (Ironpython ではありません。manik API には適していません) に関するアドバイスがあれば、ここに書き込んでください。どうも。

于 2011-06-17T00:00:18.030 に答える
-2

TAOプロジェクトをご存知ですか?
C# で DllIMport() を呼び出して、アンマネージ Opengle ライブラリを .Net Managed Form に変換する .Net プロジェクトです。

TAOFramework.net と同様に、Mapnik に対してもこれを行う必要があります。

于 2012-10-03T07:09:28.437 に答える