
マップレンダリングとは、地理空間データから視覚的なマップを作成することです。 KML、GeoJSON、GeoTIFF、およびShapefileのマップをさまざまなファイル形式にレンダリングできます。マップは、PNG、SVG、JPGなどのさまざまな画像形式にレンダリングできます。次のセクションでは、画像へのマップレンダリングについて詳しく説明します。
- シェープファイルから画像へのマップレンダリング– C#APIのインストール
- C#を使用してプログラムでシェープファイルからSVGにマップをレンダリングする
- C#でプログラム的にシェープファイルからPNG画像にマップをレンダリングする
- C#を使用したアドバンススタイルのカスタムマップレンダリング
- C#を使用してプログラムでGeoTIFF形式からSVGにマップをレンダリングする
シェープファイルから画像へのマップレンダリング– C#APIのインストール
Aspose.GIS for .NET APIを使用すると、さまざまな地理的および地理空間ファイル形式を操作できます。必要に応じて、サポートされているファイル形式からSVG、PNG、およびその他のファイル形式にマップをレンダリングできます。 新しいリリースセクションからAPIをダウンロードして構成するか、パッケージマネージャーコンソールで次のNuGetインストールコマンドを使用できます。
PM> Install-Package Aspose.GIS
C#を使用してプログラムでシェープファイルからSVGにマップをレンダリングする
次の手順で、シェープファイルからSVGファイルにマップをレンダリングできます。
- Mapクラスの新しいインスタンスを作成します。
- ベクターマップレイヤーを作成し、マップに追加します。
- マップをファイルにレンダリングします。
以下のコードは、C#を使用してプログラムでシェープファイルからSVGにマップをレンダリングする方法を詳しく説明しています。
// Mapクラスの新しいインスタンスを作成します。
using (var map = new Rendering.Map(800, 400))
{
// ベクターマップレイヤーを作成し、マップに追加します。
map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));
// マップをファイルにレンダリングします。
map.Render("land_out.svg", Renderers.Svg);
}
C#でプログラム的にシェープファイルからPNG画像にマップをレンダリングする
マップをシェープファイルからPNG、JPG、BMPなどのラスターイメージ形式にレンダリングできます。以下は、シェープファイルからPNGイメージにマップをレンダリングするための手順です。
- Mapクラスオブジェクトをディメンションで初期化します。
- ベクターマップレイヤーを作成して追加します。
- マップをPNG画像にレンダリングします。
次のコードは、C#を使用してプログラムでシェープファイルからPNG画像にマップレンダリングする方法を示しています。
// Mapクラスオブジェクトをディメンションで初期化します。
using (var map = new Rendering.Map(800, 400))
{
// ベクターマップレイヤーを作成して追加します。
map.Add(VectorLayer.Open("land.shp", Drivers.Shapefile));
// マップをPNG画像にレンダリングします。
map.Render("land_out.png", Renderers.Png);
}
C#を使用したアドバンススタイルのカスタムマップレンダリング
高度な機能スタイルを使用して、マップの外観をカスタマイズできます。カスタムマップレンダリングについては、以下の手順に従ってください。
- Mapクラスオブジェクトを初期化します。
- 単純なポリゴンシンボライザーのSimpleFillを初期化します。
- 入力シェープファイルからレイヤーを開いて読み取ります。
- マップをファイルにレンダリングします。
以下のコードは、C#を使用して高度なスタイルでカスタムマップレンダリングを行う方法を説明しています。
// Mapクラスオブジェクトを初期化します。
using (var map = new Rendering.Map(800, 476))
{
// SimpleFillを初期化して、単純なポリゴンシンボライザーにします。
var baseMapSymbolizer = new Rendering.Symbolizers.SimpleFill { FillColor = Color.Salmon, StrokeWidth = 0.75 };
// 入力シェープファイルからレイヤーを開いて読み取ります。
map.Add(VectorLayer.Open("basemap.shp", Drivers.Shapefile), baseMapSymbolizer);
// SimpleMarkerクラスの新しいインスタンスを初期化します。
var citiesSymbolizer = new Rendering.Symbolizers.SimpleMarker() { FillColor = Color.LightBlue };
citiesSymbolizer.FeatureBasedConfiguration = (feature, symbolizer) =>
{
var population = feature.GetValue<int>("population");
symbolizer.Size = 10 * population / 1000;
if (population < 2500)
{
symbolizer.FillColor = Color.GreenYellow;
}
};
// VectorMapLayerをマップに追加します。
map.Add(VectorLayer.Open("points.geojson", Drivers.GeoJson), citiesSymbolizer);
// マップをファイルにレンダリングします。
map.Render("cities_out.svg", Renderers.Svg);
}
C#を使用してプログラムでGeoTIFF形式からSVGにマップをレンダリングする
次の手順で、GeoTIFFからSVGファイルへのマップをレンダリングできます。
- Mapクラスオブジェクトをインスタンス化します。
- GeoTIFFまたはTIFF形式のドライバーを使用して、読み取り用のレイヤーを開きます。
- マップをファイルにレンダリングします。
以下のコードスニペットは、C#を使用してプログラムでGeoTIFF形式からSVGにマップをレンダリングする方法を示しています。
// Mapクラスオブジェクトを初期化します。
using (var map = new Rendering.Map(500, 500))
{
// GeoTIFFまたはTIFF形式のドライバーを使用して読み取り用のレイヤーを開きます。
var layer = GeoTiff.OpenLayer("raster_float32.tif");
// 色への変換は自動的に検出されます。
// 最大値と最小値が計算され、線形補間が使用されます。
map.Add(layer);
// マップをファイルにレンダリングします。
map.Render("raster_float32_out.svg", Renderers.Svg);
}
無料のAPIライセンスを取得する
無料一時ライセンスを使用してAPIを評価し、制限なしでAPIをテストできます。
結論
この記事では、シェープファイルまたはGeoTIFF形式からSVG、またはPNG、JPG、TIFFなどの他のラスター画像形式へのマップレンダリングについて学習しました。ドキュメントにアクセスすると、APIの他の機能を調べることができます。ご不明な点がございましたら、無料サポートフォーラムからお気軽にお問い合わせください。