MapXtremeはasp.Netでの使用による地図のロード

2339 ワード

1.地図をローカルのファイルシステムに保存するには、必ずアクセス権(そうでなければ開くことができない)が必要であり、例から分かるように、webを使用する.configはデフォルトのワークスペースを構成することができる.
<add key="MapInfo.Engine.Session.Workspace" value="D:\Program Files\MapInfo\MapXtreme\6.8.0\Samples\HZ\hangzhou.mws" />

2.地図をロードする場合は、他の地図と混同しないようにmapAlias、すなわち別名を使用することにしました.入門例があれば、地図をロードするポイント関数を見つけます.探して探して、地図の過程が関数にあることを発見します
private MapGetMapObj(string mapAlias)では、mapAliasが存在しない場合、地図の最初の地図に直接戻るため、例のコード処理ロジックは現在、mapAliasが存在しない場合に私たちのニーズを満たすことができません.
map = MapInfo.Engine.Session.Current.MapFactory[mapAlias];
if (map == null)
{
map = MapInfo.Engine.Session.Current.MapFactory[0];

}

3.地図をロードするために、ネット上の文章を調べましたが、残念なことに、方法は無効です.上のコードからmapFactoryクラスで地図をロードできることがわかります.この方法は次のとおりです.
プロジェクトファイルから地図をロードするtableを容易にするためにworkspaceloaderオブジェクトを作成します.
MapLoader mws = MapWorkSpaceLoader.CreateFromFile(@"F:\Gis\yiwuditu\yiwuditu.mws");

MapFactoryクラスのCreateEmptyMapメソッドを使用して、新しい空の地図を作成します.地図の別名は私たちが設定したい別名です(注:別名は重複できません)
Map map = MapInfo.Engine.Session.Current.MapFactory.CreateEmptyMap("hangzhou",alias,new System.Drawing.Size(300,300));

次に、mapのloadメソッドを利用して、地図をロードすればよい.
map.Load(mws);

4.この機能は私たちのシステムで必ず完成しなければならない機能で、地図が多いので、動的にロードする方法を採用しなければならないが、APIドキュメント、サンプルプログラム、ネット上でも、満足のいく結果を見つけることができないが、道理で、この操作は実用的な頭で考えてみれば分かる.
現在,2つの地図が互いに干渉する場合があり,まだ解決されていないが,アプリケーション変数の共通問題であると初歩的に推定されている.明日解決してみる