それで、ついに私はそれをハッキングしました。良い解決策ではありませんが、少なくとも機能します。簡単に言えば、次のように動作します。
- コマンドライン引数としてパラメータを取るpythonスクリプトを開発しました。(mapnik の python api を使用)
- この python スクリプトをシェルから c# コード (プロセス) で呼び出します。
- マップ画像が生成された後、背景レイヤーとして SharpMap に表示します
マップの更新 (ズーム、パン) の場合は、「mapnik マップ レイヤー」を再生成します。生成されたマップを保存できるある種のキャッシュもあるので、以前に生成されたマップ画像を使用してトリックを作成したり、それらを事前に生成したりできます (たとえば、ユーザーがズーム ツールを使用するときに次のズーム レベルのマップを生成します)。これを行うためにいくつかの非同期呼び出しも使用するため、1 ~ 3 個のマップ イメージを並行して作成できます。
このソリューションの弱点は、python と c# モジュール間の通信です。コマンドライン引数+シェルよりも良いものは見つかりませんでした。
私のソリューションは機能し、mapnik は高速で、1 秒もかからずにマップを生成できます。
.net - python 通信 (Ironpython ではありません。manik API には適していません) に関するアドバイスがあれば、ここに書き込んでください。どうも。