Delphi、C++ Builder、.NET sgcUI の一部

sgcMaps:Delphi、C++ Builder、.NET 向けネイティブマップ

ブラウザコントロールも JavaScript も使わずに、本物の地図をアプリケーションに組み込めます。sgcMaps は、ラスターとベクタータイルを自分で描画し、WMS と WMTS サーバーのレイヤーを追加し、クラスタリングされた数千のマーカー、ルート、ゾーンを表示し、住所をジオコーディングし、ローカルのタイルとオフラインルーターでオフラインでも動き続けます。

VCL、FireMonkey、Lazarus、WinForms、WPF、Avaloniaブラウザコントロールなし、JavaScript なし無料の .NET Community 版sgcUI Enterprise に含まれます
ベクタータイルでマドリード中心部を表示し、赤と青の位置マーカーを付けた TsgcVCLMap

地図アプリケーションに必要なすべて

18 の機能を、実際の API とその背後のヘルプトピックとともに紹介します。

タイルと地図データ

地図コントロールは、タイルサーバー、WMS または WMTS サービス、ベクターソース、ディスク上のファイルから、すべてのタイルを自分で描画します。

フォームの中に本物の地図を。中にブラウザは不要

タイルと地図データ

フォームの中に本物の地図を。中にブラウザは不要

多くの地図コンポーネントは、Web ビューと JavaScript ライブラリをラップしているため、デスクトップアプリケーションがブラウザを同梱することになります。sgcMaps は違います。TsgcVCLMap と TsgcFMXMap は、タイルを自身のキャンバスにダウンロード、キャッシュ、描画し、マウスホイールによるズームとドラッグによるパンを処理し、通常の Delphi のイベントを発生させます。地図は他のコントロールと同じネイティブコントロールです。ドッキングでき、フォームとともにテーマが適用され、他のコードと同じようにデバッグできます。配布やセキュリティ対策が必要な追加プロセスはなく、アプリケーションが動作するどのマシンでも、地図は同じように動作します。

  • Layers コレクションは、1 つ以上の TsgcMapLayer 項目を保持し、それぞれが独自の TileSourceType を持ちます
  • TsgcFMXMap は、Windows では Delphi XE6 以降、macOS、iOS、Android では Delphi 10.4 以降で動作します
  • Lazarus LCL コントロールは、ディスク上のタイルを表示します
  • .NET では、WinForms 用の SgcMapControl、WPF 用の TsgcWpfMap、Avalonia 12 用の TsgcAvaloniaMap、ヘッドレスの MapView が 1 つのエンジンを共有します
  • アラビア語とヘブライ語の右から左対応:ズームボタン、レイヤースイッチャー、コンパス、スケールバー、帰属表示は反対側に移動し、マップは地理的な向きを保ちます
ヘルプのトピックを読む
1 つのプロパティでタイルプロバイダーを選ぶ

タイルと地図データ

1 つのプロパティでタイルプロバイダーを選ぶ

ベースマップを選ぶために、タイルサーバーのドキュメントを読む必要はありません。レイヤーの Provider を設定して sgcMapApplyProvider を呼び出すと、レイヤーはそのプロバイダーの URL テンプレート、最大ズーム、著作権表示のテキストを受け取ります。OpenStreetMap、OpenTopoMap、Esri World Imagery、Esri World Street は、キーなしで使えます。MapTiler、Thunderforest、Stadia は、ご自身の API キーを使います。独自のタイルサーバーも、URL テンプレート 1 つで利用できます。レイヤーごとに独自のプロバイダーを持てるため、衛星画像のレイヤーと道路のレイヤーを同じ地図に置き、ユーザーが地図上で切り替えられます。

  • キー不要:mtpOpenStreetMap、mtpOpenTopoMap、mtpEsriWorldImagery、mtpEsriWorldStreet
  • 自分のキーを使うもの:mtpMapTilerStreets、mtpMapTilerSatellite、mtpThunderforestCycle、mtpThunderforestTransport、mtpStadiaAlidadeSmooth
  • mtpCustom と URLTemplate で、任意の {z}/{x}/{y} サーバーを読み込みます
  • プロバイダーの著作権表示は、自動的に地図上に描画されます
  • ShowLayerSwitcher は、地図上にレイヤーボタンを表示します
ヘルプのトピックを読む
どのサイズでも鮮明なベクタータイル

タイルと地図データ

どのサイズでも鮮明なベクタータイル

ラスタータイルは拡大するとぼやけ、スタイルを変えるたびにサーバーから新しい画像を取得する必要があります。ベクタータイルでは、コントロールがジオメトリを受け取り、道路、水域、建物、ラベルを自分で描画するので、高 DPI の画面やエクスポートした画像でも文字が鮮明なままです。レイヤーを Mapbox Vector Tile サーバーに向け、VectorStyleFile を空のままにすれば組み込みのスタイルを使え、MapLibre または Mapbox GL のスタイルファイルを読み込めば、ブランドに合わせられます。ベクターレイヤーは、VCL と FireMonkey のコントロールのどちらでも動作します。

  • mtsVectorHTTP は、ベクタータイルサーバーを読み込みます(Delphi XE2 以降)
  • mtsVectorMBTiles は、ローカルのベクター MBTiles ファイルを読み込みます(オフラインパック)
  • mtsVectorPMTiles は、PMTiles アーカイブ(ローカルファイルまたは URL)からベクタータイルを読み込みます(オフラインパック)
  • TsgcMapVectorStyle は、LoadFromFile または LoadFromJSON でスタイルを読み込みます
  • デコードと描画は、TsgcMapTileSource_MVT の中にあり、標準的な Delphi コードで書かれています
ヘルプのトピックを読む

タイルと地図データ

WMS と WMTS サーバーのレイヤー

自治体、公共事業者、地図作成機関は、土地利用、地籍、オルソフォトを z/x/y タイルではなく OGC の Web サービスとして公開しています。TileSourceType を mtsWMS または mtsWMTS に設定すると、レイヤーはサービスから画像を取得し、ベースマップ上の透過オーバーレイとして、またはベースマップそのものとして表示されます。capabilities リーダーは、サービスが提供するレイヤーを一覧表示してレイヤーを設定するため、ユーザーはリクエストパラメーターを入力する代わりに、タイトルでレイヤーを選べます。

  • mtsWMS は WMS 1.3.0 または 1.1.1 の GetMap リクエストを送信し、Layers、Styles、ImageFormat、Transparent はレイヤーの WMS オプションで指定します
  • mtsWMTS は、レイヤーの WMTS オプションを通じて KVP と REST のサービスを読み込みます
  • TsgcMapWMSCapabilities と TsgcMapWMTSCapabilities は capabilities ドキュメントを読み込み、ApplyToLayer はそれを使ってレイヤーを設定します
  • サーバーからの例外ドキュメントは、そのテキストとともに OnTileError に渡されます
  • .NET では TileSourceType.Wms と TileSourceType.Wmts、および WmsCapabilities と WmtsCapabilities

無料の Community 版を含むすべてのエディションで、Delphi 2009 以降で利用できます。地図は Web メルカトルのままです。WMS レイヤーは EPSG:3857 でリクエストされ、WMTS レイヤーには GoogleMapsCompatible などの Web メルカトルのタイルマトリックスセットが必要で、GetFeatureInfo には対応していません。

ヘルプのトピックを読む

タイルと地図データ 登録版のみ

ネットワークがなくても作業を続ける

地下室にいる現場の技術者、海上の船舶、工場のフロアネットワークは、タイルサーバーに依存できません。sgcMaps は、Web から読み込むのとまったく同じ方法でディスクからタイルを読み込みます。レイヤーに CacheFolder を設定すると、取得したすべてのタイルが次回の実行のために保存されます。完全なオフラインパックには、TsgcMapTileDownloader が、ある範囲とズーム範囲のタイルを、あらかじめフォルダまたは MBTiles ファイルに取得します。

  • mtsFolder は、PNG または JPEG タイルの z/x/y フォルダを読み込みます
  • mtsMBTiles は、ラスターの MBTiles ファイルを読み込みます(Delphi XE7 以降、FireDAC SQLite)
  • CountTiles は、ダウンロードを始める前にそのサイズを知らせ、DelayMS と OnProgress で、負荷を抑えつつ進捗を可視化します
  • 一括ダウンロードは、プロバイダーの利用規約に従う必要があります。OpenStreetMap のタイルは、対話的な閲覧専用です

Community 版は、z/x/y のタイルフォルダを読み込み、レイヤーごとの CacheFolder を保持します。タイルダウンローダー、MBTiles ファイル、PMTiles ファイルは、オフラインパックに含まれます。

ヘルプのトピックを読む

タイルと地図データ 登録版のみ

地域全体を 1 つの PMTiles ファイルに

PMTiles アーカイブは、完全なタイルピラミッドを 1 つのファイルに格納します。ノート PC にコピーしたり、任意の静的 Web サーバーに置いたりでき、実行するタイルサーバーは不要です。sgcMaps は、アーカイブをローカルファイルから、または HTTP range リクエストで Web サーバーから直接読み込み、読み込んだディレクトリをキャッシュに保持するため、表示範囲のタイルだけがネットワークを流れます。

  • PNG と JPEG のラスターアーカイブには mtsPMTiles、Mapbox Vector Tile アーカイブには mtsVectorPMTiles
  • TileSourcePath には、ファイル名または http か https の URL を指定できます
  • TsgcMapTileSource_PMTiles は、アーカイブのズーム範囲、境界、中心、メタデータを返します
  • PMTiles バージョン 3 に対応し、WebP タイルを含むアーカイブは非対応として報告されます
  • Delphi XE2 以降、および .NET では登録版の esegece.sgcMaps パッケージで利用できます

PMTiles は MBTiles と同じくオフラインパックに含まれるため、登録版に含まれ、無料の Community 版には含まれません。

ヘルプのトピックを読む

マーカー、図形、ジオメトリ

自分のデータを地図に載せ、どのズームレベルでも読みやすく保ち、その背後の計算を行えます。

マーカー、図形、ジオメトリ

数千のマーカーでも読みやすい

車両群、店舗網、センサーグリッドは、すぐに重なり合うピンの塊になります。クラスタリングを有効にすると、近くのマーカーは番号付きの 1 つの円にまとまり、ユーザーがズームインすると再び分かれます。これはズームレベルごとに再計算されます。各マーカーは独自のポップアップ、ツールチップ、アイコンを持ち、クリック、ドラッグ、クラスタのクリックはイベントとして届くので、地図は単なる画像ではなく、ワークフローの一部になります。マーカーは、データからループで追加することも、GeoJSON、GPX、KML ファイルからインポートすることもでき、ClearMarkers は 1 回の呼び出しでそれらをリセットします。

  • MarkerOptions.Clustering と、GridSize、MinClusterSize、ZoomOnClick
  • マーカーごとの PopupText、TooltipText、IconBitmap
  • OnMarkerClick、OnClusterClick、OnMarkerDragEnd イベント
  • 一括読み込みの前後で BeginUpdate と EndUpdate を使い、FitToMarkers がすべてを画面に収めます
  • MarkerAtScreen と ClusterAtScreen で、任意のピクセルの当たり判定を行います
ヘルプのトピックを読む
1 つの地図にルート、ゾーン、ヒートマップ

マーカー、図形、ジオメトリ

1 つの地図にルート、ゾーン、ヒートマップ

多くの地図画面では、ピン以外のものが必要です。計画された配送ルート、拠点がカバーするエリア、顧客を中心とした半径、注文の発生元などです。sgcMaps は、これらすべてをマーカーと同じ座標の、地図モデルの項目として描画します。図形は編集可能にでき、ユーザーはマウスでゾーンの頂点をドラッグでき、編集が終わるとコードに通知されます。ラベルは、独自のフォント、色、背景で座標にテキストを配置するので、ゾーン名やルート番号が地図に結び付いたままになります。

  • AddPolyline と、Dashed および Geodesic の線
  • AddHole を持つ AddPolygon、さらに AddRectangle、AddCircle(RadiusMeters)、AddLabel
  • Editable な図形は、OnShapeEdited で変更を通知します
  • TsgcMapHeatmap は、AddPoint による重み付きの点と、MaxIntensity を受け取ります
ヘルプのトピックを読む

マーカー、図形、ジオメトリ

地理計算はすでに用意されています

この車両はゾーンの内側にありますか。最も近い拠点までの距離は。ルート上でその顧客に最も近い点はどこか。こうした疑問はどの地図アプリケーションにも出てきますが、極付近や長距離では間違いやすいものです。ジオメトリユニットは、WGS84 球面上でこれらに答え、地図がまったくないサービスからも呼び出せる通常の関数として提供されます。関数は通常の TsgcMapCoord レコードを受け取り、独自のオーバーレイを描画するときは、sgcMapLatLonToPixel と sgcMapPixelToLatLon が、画面座標とワールド座標を変換します。

  • メートル単位の sgcMapDistance、sgcMapInitialBearing、sgcMapDestinationPoint
  • ジオフェンス向けの sgcMapPointInPolygon と sgcMapPointInPolygonWithHoles
  • sgcMapNearestPointOnPolyline は、位置をルートにスナップします
  • 滑らかで軽い線のための sgcMapGeodesicInterpolate と sgcMapSimplify
ヘルプのトピックを読む

検索とルーティング

オンラインのプロバイダーで住所を検索してルートを計画することも、API キーなしで完全にオフラインで行うこともできます。

検索とルーティング

ジオコーディング、経路案内、場所検索を 1 つの API で

ジオコーディングやルーティングのプロバイダーは、それぞれ独自の REST 形式、キー、癖を持っています。サービスコンポーネントはそれらを隠します。プロバイダーを選び、必要ならキーを設定して、同じメソッドを同期または非同期で呼び出すだけです。プロバイダーの切り替えはプロパティの変更で済み、書き直しは不要で、結果は地図にそのまま載せられる Delphi のオブジェクトとして返ります。すべてのコンポーネントは TsgcMapService 基底クラスを共有するため、ApiKey、UserAgent、LastError は、どのプロバイダーでも同じように動作します。

  • TsgcMapGeocoder:Nominatim、Google、HERE、Azure Maps、Mapbox、OpenRouteService、Geoapify
  • TsgcMapDirections:OSRM、OpenRouteService、Google Routes、HERE、Azure Maps、Mapbox、Geoapify
  • 住所のオートコンプリート向けの TsgcMapPlaces、TsgcMapElevation、TsgcMapTimeZone
  • GeocodeAsync、GetRouteAsync、SuggestAsync は UI の応答性を保ち、エラーは OnError に届きます
ヘルプのトピックを読む

検索とルーティング 登録版のみ

インターネットもキーも不要のルートと住所検索

オンラインのルーティングは、現場向けアプリが使われるまさにその場所で失敗しやすく、リクエストごとに費用がかかることもあります。オフラインルーターは、OpenStreetMap の抽出データから一度だけ作ったルートグラフを使って、車、自転車、徒歩のルートをデバイス上で計算します。オフラインジオコーダーは、SQLite の GeoNames インデックスから、地名の検索と、クリックした位置の逆ジオコーディングを行います。どちらもネットワーク、アカウント、リクエストごとの料金は不要です。ルーターとジオコーダーは非ビジュアルコンポーネントなので、Windows サービスやコンソールツールが、画面に地図を表示せずに、ルートや住所のリクエストに応答できます。

  • TsgcMapOfflineRouter は、TsgcMapRouteGraphBuilder が .osm.pbf から作成したグラフを使って GetRoute に応答します
  • sgcMapAddRouteToPolylines は、結果を地図上に描画します
  • TsgcMapOfflineGeocoder の ReverseGeocode は、TsgcMapGeoIndexBuilder が作成したインデックスを使います
  • グラフとインデックスを作るコマンドラインビルダーは、Tools フォルダにあります

Community 版はオンラインサービスを使い、オフラインルーターとジオコーダーはオフラインパックに含まれます。

ヘルプのトピックを読む

ファイル、レンダリング、モバイル

他のツールとジオデータをやり取りし、画面のない環境で地図を描画し、地図をスマートフォン、WPF ウィンドウ、Avalonia ウィンドウに持ち込めます。

ファイル、レンダリング、モバイル

ユーザーがすでに持っているファイルを開く

お客様は、GPS ウォッチのトラック、GIS ツールで描いたゾーン、他のシステムの KML を送ってきます。sgcMaps は、GeoJSON、GPX、KML を地図モデルに直接読み書きするので、インポートは 1 回の呼び出し、エクスポートも 1 回の呼び出しで済みます。GPX のトラックは統計情報付きで、標高で色分けでき、ストリーミングリーダーは、大きな OpenStreetMap の抽出データを、メモリに読み込まずに処理します。エクスポートも同じ関数を逆向きに使うので、ユーザーが地図上に描いたゾーンを GeoJSON や KML として保存し、他の GIS ツールで開けます。

  • sgcMapLoadGeoJSONFile と sgcMapSaveGeoJSONFile(Delphi XE6 以降)
  • TsgcMapGPX の TrackStats(TotalAscent、TotalDescent)と ColorByElevation
  • sgcMapLoadKMLFile と sgcMapSaveKMLFile
  • OpenStreetMap リーダーは、.osm.pbf と XML ファイルをイベントを通じてストリーミング処理します
  • sgcMapGeoJSONAsText は、地図の GeoJSON を文字列として返します
ヘルプのトピックを読む

ファイル、レンダリング、モバイル

あらゆる GIS からの shapefile と WKT

公開されているジオデータは今も Esri の shapefile で配布されることが多く、空間データベースは Well Known Text でジオメトリをやり取りします。TsgcMapShapefile は、shapefile の点、線、ポリゴンを属性テーブルとともにインポートするため、すべてのマーカーが元のレコードを表示できます。WKT と PostGIS が出力する EWKT の読み書きにも対応しており、地図とデータベースのジオメトリ列の間でゾーンを移す最も簡単な方法です。

  • LoadFromFile は .shp を、.shx、.dbf、.prj、.cpg ファイルとともに読み込みます。OnItem は各属性行を受け取り、LabelField は点のポップアップテキストを設定します
  • WGS84、ETRS89、NAD83 の度単位、または Web メルカトルの .prj はそのまま読み込まれ、.prj のないファイルは WGS84 として読み込まれます
  • それ以外の投影法では、OnTransform ハンドラーが座標を変換しない限り、わかりやすいエラーが発生します
  • sgcMapLoadWKT と TsgcMapWKT は、POINT、LINESTRING、POLYGON、その MULTI 形式、GEOMETRYCOLLECTION を度単位または Web メルカトルのメートル単位で読み込み、AsText は地図の内容を書き出します
  • すべてのエディションで Delphi 7 以降。.NET では、Transform コールバックを持つ ShapefileFormat と WktFormat
ヘルプのトピックを読む
サーバーで地図画像を描画

ファイル、レンダリング、モバイル

サーバーで地図画像を描画

ルート付きの納品書、今日の事故を載せた日報、Web ページのサムネイルなど、ウィンドウに表示されない地図は多くあります。同じコントロールが、表示されないまま、コンソールアプリケーションや Windows サービスから PNG やビットマップを描画します。画像を送る前にすべてのタイルが届いたかを確認できるので、タイルサーバーが遅くても、お客様向けの文書に灰色の四角が残ることはありません。サーバー側のレンダリングは、対話型コントロールと同じレイヤー、マーカー、図形を使うため、画面上で設計した地図は PNG でも同じ見た目になります。

  • SaveToPNG と SaveToPNGFile(Delphi 2009 以降)
  • 独自のパイプライン向けの RenderToBitmap と SaveToBMPFile
  • LastRenderMissingTiles は、取得できなかったタイルを報告します
  • .NET の MapView.RenderToPng は、Linux でも動作します
ヘルプのトピックを読む

ファイル、レンダリング、モバイル

デスクトップでもモバイルでも同じ地図

配車担当者は Windows のデスクトップで計画を立て、ドライバーはスマートフォンでその計画に従います。TsgcFMXMap は、同じモデル、レイヤー、マーカー、図形、サービスを、Windows、macOS、iOS、Android の FireMonkey に提供するので、VCL の地図用に書いたコードをそのまま使えます。TsgcMapLocation はデバイスの位置を読み取るため、地図をユーザーを中心に表示して追従させられます。レイヤーごとのタイルキャッシュはモバイルでも動作するので、スマートフォンは、すでに読み込んだエリアを表示し続けます。

  • Windows では Delphi XE6 以降、macOS、iOS、Android では Delphi 10.4 以降(macOS ARM は Delphi 11 以降)の TsgcFMXMap。TsgcVCLMap と同じコレクションを持ちます
  • Windows、Android、iOS、macOS の TsgcMapLocation
  • FMX デモは、タイル、マーカー、位置情報を 1 つのフォームで紹介し、FMX Mobile デモはスマートフォンとタブレット向けにレイアウトされています
  • フレームワークに依存しないコアは Delphi 10.4 以降の Linux 64 ビットでもコンパイルでき、タイルソース、ファイル形式、オフラインデータを使うコンソールアプリケーションやサーバーアプリケーションで利用できます
  • 3 つのランタイムパッケージ sgcMaps(コア)、sgcMapsVCL、sgcMapsFMX に分かれたため、FireMonkey アプリケーションが VCL パッケージを読み込むことはなくなりました
  • 機能ごとの最低 Delphi バージョンは、インストールのトピックに記載しています
ヘルプのトピックを読む

ファイル、レンダリング、モバイル

WPF と Avalonia のマップを XAML で宣言する

TsgcWpfMap と TsgcAvaloniaMap は、.NET のマップエンジンを WPF と Avalonia 12 に提供し、WinForms コントロールと同じ機能を備えます。マウス、タッチ、キーボードによるパンとズーム、レイヤー、マーカー、図形、印刷、PDF エクスポート、UI Automation に対応します。レイヤーとマーカーは sgc プレフィックスの XAML で宣言でき、ビューモデルのコレクションは ItemsSource を通じてマーカーになります。コレクションに店舗を追加すると地図に表示され、マーカーをドラッグすると新しい位置が書き戻されます。

  • LatitudeMember、LongitudeMember、TooltipMember、PopupMember、ColorMember、DraggableMember が、お使いのプロパティをマーカーに対応付けます
  • SelectedItem、Zoom、Bearing、CenterLatitude、CenterLongitude は双方向にバインドできます
  • 色は XAML で #AARRGGBB または #RRGGBB のテキストとして記述します
  • NuGet の esegece.sgcMaps.Wpf(net8.0-windows から net10.0-windows)と esegece.sgcMaps.Avalonia(net8.0 から net10.0)は、どちらも無料の Community パッケージがあります
  • WpfDemo と AvaloniaDemo プロジェクトは、2 つのフレームワークで同じウィンドウを表示します
ヘルプのトピックを読む

アクセシビリティ

スクリーンリーダーとキーボード向けの UI Automation を、設定なしで使えます。

アクセシビリティ

キーボードで操作でき、UI Automation に公開されるマップ

sgcMaps は、マップを代替テキスト、マーカーの一覧、レイヤーの一覧とともに Microsoft UI Automation に公開し、各レイヤーは表示されているかどうかを報告します。マーカーにはキーボードで移動できます。

  • 矢印キーでマップをパンし、プラスキーとマイナスキーでズームし、Home で最初のビューに戻ります
  • Page Up と Page Down で前後のマーカーへ移動し、Enter でフォーカスされたマーカーを実行し、Esc でマーカーのフォーカスを解除します
  • マップは、フォーカスを持っている間、表示されるフォーカスリングを示します
  • .NET では、WinForms、WPF、Avalonia のマップコントロールが、同じ UI Automation の構造とキーボード操作を公開します

アクセシビリティは、無料の Community 版を含むすべてのエディションで既定で有効です。VCL では Delphi 7 から Delphi 13 までのすべての Delphi と C++Builder のバージョンで、FireMonkey では Windows で、そして WinForms、WPF、Avalonia で使えます。 Delphi と C++Builder では、AccessibleName と AccessibleDescription が UI Automation に公開される名前と説明を設定し、.NET では各フレームワーク標準のアクセシブルな名前とヘルプテキストが同じ役割を果たします。アクセシビリティ適合レポートを参照してください(新しい WPF と Avalonia のマップコントロールは、まだ対象外です)。 マップの画像は中心とズームだけで説明され、マップのレンダラーは Windows のハイコントラストに従いません。マップの画像はプロバイダーのタイル画像であるためです。

ヘルプのトピックを読む

sgcMaps の動作を見る

sgcUI スイートのデモに含まれる sgcMaps:組み込みのシミュレーションデータでオフラインで動作する完全なアプリケーションです。

sgcMaps の主な利用シーン

フィールドサービスと物流

技術者やドライバーが地図を必要とするのは、電波の弱い場所です。地域のタイルをあらかじめ準備し、オフラインルーターで車のルートをデバイス上で計算し、オフラインジオコーダーで住所を検索します。オフィスに戻れば、同じコードが計画されたルートと配送ゾーンを描画し、各ルートの PNG を納品書用に出力します。

  • オフラインで動作
  • オフラインルーティング
  • ルートとゾーン
  • 地図画像
OfflineServices デモを実行する

資産と車両の追跡

コントロールルームでは、数百台の車両、機械、センサーを同時に監視します。クラスタリングにより、国レベルでは地図が読みやすく保たれ、街路レベルでは 1 つ 1 つのピンに分かれます。ヒートマップはインシデントが集中する場所を示し、ポリゴン内判定によるジオフェンスのチェックはアラートを発生させ、マーカーのクリックイベントは、自社のフォームで資産のレコードを開きます。

  • クラスタリング
  • ヒートマップ
  • ジオメトリ
  • イベント
MapFeatures デモを実行する

軽量 GIS とアウトドアアプリ

計画ツール、スポーツアプリ、測量ソフトウェアは、GPX のトラック、KML のレイヤー、GeoJSON のゾーンを使います。sgcMaps は、この 3 つすべてをインポートおよびエクスポートし、トラックの統計情報と標高の色分けを表示して、その結果を地形図のベースマップに重ねます。FireMonkey コントロールは、同じ機能を現場のタブレットやスマートフォンに提供します。トラックの統計情報は、ルートの総上昇量と総下降量をひと目で示します。

  • GeoJSON、GPX、KML、shapefile
  • 地形図タイル
  • FireMonkey
OfflineMap デモを実行する

数行で作る地図

Delphi、C++ Builder、C# で同じ API を使えます。OpenStreetMap のタイル、3 つのマーカー、測地線、半径を表示し、マーカーに合わせて表示範囲を調整して、PNG として保存します。

コードで作った VCL の地図です。キャッシュ付きの OpenStreetMap レイヤー、マーカー、測地線、円を描画し、その結果を PNG に保存します。

uses
  SysUtils, Controls, Graphics, sgcMaps_Classes, sgcMaps_Providers,
  sgcMaps_Geometry, sgcMaps_VCL;

// OpenStreetMap with cached tiles, three capitals, a geodesic flight line
// and a 300 km radius, fitted to the markers and saved as PNG.
procedure BuildMap(aOwner: TWinControl);
var
  oMap: TsgcVCLMap;
  oLayer: TsgcMapLayer;
  oLine: TsgcMapPolyline;
begin
  oMap := TsgcVCLMap.Create(aOwner);
  oMap.Parent := aOwner;
  oMap.Align := alClient;

  oLayer := oMap.Layers.Add;
  oLayer.Name := 'OpenStreetMap';
  oLayer.Provider := mtpOpenStreetMap;
  sgcMapApplyProvider(oLayer);
  oLayer.CacheFolder := ExtractFilePath(ParamStr(0)) + 'tile_cache';

  oMap.AddMarker(48.8566, 2.3522, 'Paris', 'France');
  oMap.AddMarker(52.5200, 13.4050, 'Berlin', 'Germany');
  oMap.AddMarker(41.9028, 12.4964, 'Rome', 'Italy');
  oMap.MarkerOptions.Clustering.Enabled := True;

  oLine := oMap.AddPolyline;
  oLine.Geodesic := True;
  oLine.Dashed := True;
  oLine.Color := clRed;
  oLine.AddPoint(48.8566, 2.3522);
  oLine.AddPoint(52.5200, 13.4050);

  oMap.AddCircle(48.8566, 2.3522, 300000).FillOpacity := 0.15;
  oMap.FitToMarkers(40);
  oMap.AddLabel(50.7, 8, Format('Paris to Berlin: %.0f km',
    [sgcMapDistance(48.8566, 2.3522, 52.52, 13.405) / 1000]));
  oMap.SaveToPNG('europe.png', 1200, 800);
end;

ヘルプのトピックを読む →

生成された sgcMaps のヘッダーを使った、C++ Builder での同じ地図。

#include <vcl.h>
#include "sgcMaps_Classes.hpp"
#include "sgcMaps_Providers.hpp"
#include "sgcMaps_Geometry.hpp"
#include "sgcMaps_VCL.hpp"

// OpenStreetMap with cached tiles, three capitals, a geodesic flight line
// and a 300 km radius, fitted to the markers and saved as PNG.
void BuildMap(TWinControl *aOwner)
{
  TsgcVCLMap *oMap = new TsgcVCLMap(aOwner);
  oMap->Parent = aOwner;
  oMap->Align = alClient;

  TsgcMapLayer *oLayer = oMap->Layers->Add();
  oLayer->Name = "OpenStreetMap";
  oLayer->Provider = mtpOpenStreetMap;
  sgcMapApplyProvider(oLayer);
  oLayer->CacheFolder = ExtractFilePath(ParamStr(0)) + "tile_cache";

  oMap->AddMarker(48.8566, 2.3522, "Paris", "France");
  oMap->AddMarker(52.5200, 13.4050, "Berlin", "Germany");
  oMap->AddMarker(41.9028, 12.4964, "Rome", "Italy");
  oMap->MarkerOptions->Clustering->Enabled = true;

  TsgcMapPolyline *oLine = oMap->AddPolyline();
  oLine->Geodesic = true;
  oLine->Dashed = true;
  oLine->Color = clRed;
  oLine->AddPoint(48.8566, 2.3522);
  oLine->AddPoint(52.5200, 13.4050);

  oMap->AddCircle(48.8566, 2.3522, 300000)->FillOpacity = 0.15;
  oMap->FitToMarkers(40);
  int iKm = (int)(sgcMapDistance(48.8566, 2.3522, 52.52, 13.405) / 1000);
  oMap->AddLabel(50.7, 8, "Paris to Berlin: " + IntToStr(iKm) + " km");
  oMap->SaveToPNG("europe.png", 1200, 800, false);
}

ヘルプのトピックを読む →

ヘッドレスの MapView が、同じ地図を PNG ファイルに描画します。Windows でも Linux でも動作します。

using System;
using System.IO;
using esegece.sgcMaps;
using esegece.sgcMaps.Rendering;

// OpenStreetMap with cached tiles, three capitals, a geodesic flight line
// and a 300 km radius, fitted to the markers and saved as PNG (no window).
public static class EuropeMap
{
    public static void Render()
    {
        var oMap = new MapView();

        Layer oLayer = oMap.Layers.Add();
        oLayer.Name = "OpenStreetMap";
        oLayer.Provider = TileProvider.OpenStreetMap;
        MapProviders.ApplyProvider(oLayer);
        oLayer.CacheFolder = Path.Combine(AppContext.BaseDirectory, "tile_cache");

        oMap.AddMarker(48.8566, 2.3522, "Paris", "France");
        oMap.AddMarker(52.5200, 13.4050, "Berlin", "Germany");
        oMap.AddMarker(41.9028, 12.4964, "Rome", "Italy");
        oMap.MarkerOptions.Clustering.Enabled = true;

        Polyline oLine = oMap.AddPolyline();
        oLine.Geodesic = true;
        oLine.Dashed = true;
        oLine.Color = MapColors.Red;
        oLine.AddPoint(48.8566, 2.3522);
        oLine.AddPoint(52.5200, 13.4050);

        oMap.AddCircle(48.8566, 2.3522, 300000).FillOpacity = 0.15;
        oMap.FitToMarkers(40);
        double vKm = MapGeometry.Distance(48.8566, 2.3522, 52.52, 13.405) / 1000;
        oMap.AddLabel(50.7, 8, $"Paris to Berlin: {vKm:F0} km");
        oMap.RenderToPng("europe.png", 1200, 800);
    }
}
dotnet add package esegece.sgcMaps.Rendering

ヘルプのトピックを読む →

WMS レイヤー、shapefile、WPF のマップ

Delphi での WMS オーバーレイと属性付きの shapefile のインポート、そしてマップ、レイヤー、マーカーを XAML で宣言した WPF ウィンドウ。

独自のタイルキャッシュを持つ透過 WMS オーバーレイと、属性テーブルに基づいて公園を緑で塗りつぶす shapefile。どちらもすべてのエディションで動作します。

uses
  Classes, SysUtils, Graphics, sgcMaps_Classes, sgcMaps_VCL, sgcMaps_Shapefile;

procedure TForm2.AddWMSLayer;
var
  oLayer: TsgcMapLayer;
begin
  // an overlay drawn by a WMS server
  oLayer := sgcVCLMap1.Layers.Add;
  oLayer.Name := 'Land use';
  oLayer.TileSourceType := mtsWMS;
  oLayer.URLTemplate := 'https://maps.example.com/geoserver/wms';
  oLayer.WMS.Layers := 'landuse,rivers';
  oLayer.WMS.Version := mwv130;
  oLayer.WMS.ImageFormat := 'image/png';
  oLayer.WMS.Transparent := True;
  oLayer.IsBaseLayer := False;
  oLayer.Opacity := 0.7;
  oLayer.CacheFolder := ExtractFilePath(ParamStr(0)) + 'cache\landuse';
end;

procedure TForm2.ImportLandUse;
var
  oShp: TsgcMapShapefile;
begin
  oShp := TsgcMapShapefile.Create;
  try
    // points get the NAME field as popup text (the field must exist)
    oShp.LabelField := 'NAME';
    oShp.OnItem := ShapefileItem;
    // reads landuse.shx, .dbf, .prj and .cpg next to the .shp
    oShp.LoadFromFile('C:\Data\landuse.shp', sgcVCLMap1.Markers,
      sgcVCLMap1.Polylines, sgcVCLMap1.Polygons);
    memoLog.Lines.Add(Format('%d records, %d skipped, fields: %s',
      [oShp.RecordCount, oShp.SkippedCount, oShp.Fields.CommaText]));
  finally
    oShp.Free;
  end;
end;

procedure TForm2.ShapefileItem(Sender: TObject; aRecord: Integer;
  aAttributes: TStrings; aItem: TCollectionItem);
begin
  // aAttributes holds the .dbf row as Name=Value lines
  if (aItem is TsgcMapPolygon) and (aAttributes.Values['USE'] = 'PARK') then
    TsgcMapPolygon(aItem).FillColor := clGreen;
end;

WMS のトピックを読む → shapefile のトピックを読む →

TsgcWpfMap のレイヤーとマーカーは、sgc プレフィックスの XAML で宣言します。分離コードでは、タイルキャッシュ、線、3 つのイベントを追加します。

<Window x:Class="MapQuickStartWpf.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sgc="https://www.esegece.com/sgcui"
        Title="sgcMaps WPF Quick Start" Width="1000" Height="700">
  <sgc:TsgcWpfMap x:Name="MainMap" CenterLatitude="40.4168" CenterLongitude="-3.7038" Zoom="14">
    <sgc:TsgcWpfMap.Layers>
      <sgc:Layer Name="OpenStreetMap" Provider="OpenStreetMap" />
    </sgc:TsgcWpfMap.Layers>
    <sgc:TsgcWpfMap.Markers>
      <sgc:Marker Latitude="40.4168" Longitude="-3.7038" PopupText="Puerta del Sol"
                  TooltipText="Drag me" Draggable="True" Color="#FFE53935" />
    </sgc:TsgcWpfMap.Markers>
  </sgc:TsgcWpfMap>
</Window>
using System;
using System.IO;
using System.Windows;
using esegece.sgcMaps;

namespace MapQuickStartWpf
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            // cache the tiles of the layer declared in XAML
            MainMap.Layers[0].CacheFolder = Path.Combine(AppContext.BaseDirectory, "tile_cache");

            // a line from Puerta del Sol to Retiro Park
            Polyline line = MainMap.Map.AddPolyline();
            line.AddPoint(40.4168, -3.7038);
            line.AddPoint(40.4153, -3.6844);
            line.Color = MapColors.Blue;
            line.Width = 4;

            MainMap.MapClick += (s, e) => Title = $"Click at {e.Latitude:F5}, {e.Longitude:F5}";
            MainMap.MarkerDragEnd += (s, e) => Title = $"Dropped at {e.Item.Latitude:F5}, {e.Item.Longitude:F5}";
            MainMap.TileError += (s, e) => Title = $"Tile {e.Zoom}/{e.X}/{e.Y}: {e.Error}";
        }
    }
}
dotnet add package esegece.sgcMaps.Wpf

ヘルプのトピックを読む →

sgcMaps のデモを実行する

sgcMaps には、11 の Delphi デモと 8 つの .NET デモが付属します。C++ Builder のデモプロジェクトはありません。

登録版のみ OfflineMap

フォルダ、MBTiles、オンラインのタイル、マーカー、図形、GeoJSON、GPX、KML のインポート。

MapFeatures

プロバイダーと API キー、マーカーのクラスタリング、図形の編集、ヒートマップ、画像のエクスポート。

Services

オンラインプロバイダーによる、場所検索、ジオコーディング、経路案内、標高、タイムゾーン、デバイスの位置情報。Delphi XE8 以降。

登録版のみ OfflineServices

GeoNames インデックスと OpenStreetMap のルートグラフを作成し、ネットワークなしで、場所の検索と、車、自転車、徒歩のルート検索を行います。

StaticRender

StaticRender

ウィンドウなしで、地図を PNG または BMP ファイルに描画するコンソールプログラム。

FMX

タイル、マーカー、デバイスの位置情報を使う FireMonkey の地図。Windows、macOS、iOS、Android 向け。Delphi XE6 以降。

VectorTiles

VectorTiles

組み込みのスタイルまたは独自のスタイルファイルで描画する、ベクタータイルサーバー。どのズームでもラベルが鮮明です。

FMXMobile

スマートフォンとタブレット向けの FireMonkey マップ。1 本指のパン、ピンチズーム、大きなズームボタン、精度の円付きの現在位置、場所の一覧を備えています。Delphi 10.4 以降。

OGCServices

WMS または WMTS の capabilities ドキュメントを URL またはファイルから読み込み、レイヤーを一覧表示して、選んだレイヤーを OpenStreetMap 上のオーバーレイとして不透明度スライダー付きで追加します。Delphi 2009 以降。

登録版のみ PMTiles

ラスターまたはベクターの PMTiles アーカイブをファイルまたは URL から開き、ヘッダーとメタデータを表示して、アーカイブを中心にしたレイヤーとして追加します。Delphi XE2 以降。

ShapefileWKT

属性テーブル付きの shapefile をインポートし、クリックしたマーカーのレコードを表示して、WKT をインポートおよびエクスポートします。

WinFormsDemo

WinForms ウィンドウ内の .NET SgcMapControl。プロバイダー、マーカー、図形を使います。

WpfDemo

XAML で宣言した WPF のマップ。マークアップ内のベースレイヤーとマーカー、ItemsSource でマーカーにバインドした店舗、ズームと方位のスライダー、印刷、PDF エクスポート。

AvaloniaDemo

Avalonia 12 のマップコントロールとコンパイル済みバインディングによる、同じウィンドウ。

OgcServicesDemo

OpenStreetMap のベースレイヤーと、WMS または WMTS サービスのオーバーレイ 1 つを持つ WinForms のマップコントロール。capabilities ドキュメントを URL またはファイルから読み込み、レイヤーを一覧表示し、選んだレイヤーを不透明度スライダー付きで追加し、タイルエラーを表示します。

登録版のみ PMTilesDemo

ラスターまたはベクターの PMTiles アーカイブのレイヤーを持つ WinForms のマップコントロール。ファイルまたは URL から開き、ヘッダーとメタデータを表示して、アーカイブを中心に地図を表示します。

ShapefileWktDemo

shapefile を属性テーブルとともにインポートし、クリックしたマーカーのレコードを表示する WinForms のマップコントロール。オーバーレイの WKT インポートとエクスポートにも対応します。

登録版のみ OfflineDemo

.NET のオフラインパッケージ。ローカルのデータファイルによる、オフラインのタイル、ルーティング、ジオコーディング。

ConsoleRenderDemo

ConsoleRenderDemo

ヘッドレスの MapView で、地図を PNG に描画する .NET コンソール。Windows でも Linux でも動作します。

コンパイル済みデモ

sgcUI 全製品のすぐに実行できる実行ファイルです。インストールは不要です。

sgcUI_bin.zip をダウンロード →

Getting Started ガイド

Delphi (VCL) 向けの QuickStart デモ 5 つが Demos\Maps\00.QuickStart に入っています。PDF ガイドが、それらを順を追って解説します。マーカーを置いた最初の地図、コードで追加するマーカーとラベル、図形、地図イベント、店舗検索。

ガイドをダウンロード(PDF、英語) →

sgcMaps が含まれるエディション

sgcMaps は sgcUI Enterprise に含まれ、単体でも販売しています。All-Access バンドルにも含まれます。

sgcMaps 単体パッケージ

€149 / 開発者、ソースコード一式、1 年間のアップデート付き。

sgcMaps を購入 → 価格を見る →

sgcUI Enterprise

sgcUI 全 17 製品、€699 から。

Enterprise を見る →

無料の .NET Community 版(NuGet の esegece.sgcMaps.Community、esegece.sgcMaps.Rendering.Community、esegece.sgcMaps.WinForms.Community、esegece.sgcMaps.Wpf.Community、esegece.sgcMaps.Avalonia.Community)には、オフラインパック以外のすべての機能があります。esegece.sgcMaps.Offline パッケージは登録版のみです。プロジェクトは、Community と登録版のどちらか一方のパッケージを参照し、両方を参照することはありません。

機能Community(無料)登録版
VCL、FireMonkey、WinForms、WPF、Avalonia の地図コントロール✓✓
タイルプロバイダー、HTTP とベクタータイルのサーバー✓✓
WMS と WMTS のレイヤー✓✓
z/x/y のタイルフォルダと、レイヤーごとのタイルキャッシュ✓✓
マーカー、クラスタリング、図形、ラベル、ヒートマップ✓✓
ジオメトリ関数✓✓
GeoJSON、GPX、KML のインポートとエクスポート✓✓
shapefile のインポート、WKT のインポートとエクスポート✓✓
オンラインのジオコーディング、経路案内、場所検索、標高、タイムゾーン✓✓
PNG への静的レンダリング✓✓
オフラインパック用のタイルダウンローダー−✓
MBTiles と PMTiles ファイル(ラスターとベクター)−✓
オフラインルーターとオフラインジオコーダー−✓

対応フレームワークとプラットフォーム

sgcMaps のコンポーネント

TsgcVCLMap と TsgcFMXMap

VCL と FireMonkey 向けの地図コントロールと、ディスク上のタイルを読み込む Lazarus LCL コントロール。

モデルのコレクション

Layers、Markers、Polylines、Polygons、Rectangles、Circles、Labels、Heatmaps。すべてのフレームワークで共有されます。

オンラインサービス

TsgcMapGeocoder、TsgcMapDirections、TsgcMapPlaces、TsgcMapElevation、TsgcMapTimeZone。

オフラインツール

TsgcMapRouteCalculator、TsgcMapOfflineRouter、TsgcMapOfflineGeocoder、TsgcMapGeoIndexBuilder、TsgcMapTileDownloader。

GIS 形式と OGC サービス

TsgcMapShapefile、TsgcMapWKT、TsgcMapWMSCapabilities、TsgcMapWMTSCapabilities、TsgcMapTileSource_PMTiles。

TsgcMapLocation とジオメトリのヘルパー

デバイスの位置情報と、sgcMapDistance、方位、目的地点、測地線補間、ポリゴン内判定、線の単純化。

.NET のマップ

WinForms 用の SgcMapControl、WPF 用の TsgcWpfMap、Avalonia 12 用の TsgcAvaloniaMap、そして Linux でも PNG を描画するヘッドレスエンジンの MapView。

対象コンポーネントプラットフォーム
Delphi 7 から 13、VCLTsgcVCLMap とモデルWin32、Win64 は XE2 以降、Delphi 13 では ARM64EC
Delphi XE6 から 13、FireMonkeyTsgcFMXMapWindows は XE6 以降。macOS、iOS、Android は Delphi 10.4 以降(macOS ARM は Delphi 11 以降)。デバイスの位置情報は Windows、Android、iOS、macOS
Delphi 10.4 から 13、Linux 64 ビットフレームワークに依存しないコア。マップコントロールなしコンソールアプリケーションとサーバーアプリケーションでのタイルソース、サービス、ファイル形式、オフラインデータ
C++ Builder 2007 から 13TsgcVCLMap、XE6 以降の TsgcFMXMap、モデルWindows のみ: Win32、XE3 以降の Win64、C++ Builder 13 の Win64x。生成された .hpp ヘッダーと静的ライブラリ
LazarusLCL の地図コントロールディスク上のタイルのみ。タイルをダウンロードできません
.NET 8、9 と 10SgcMapControl、TsgcWpfMap、TsgcAvaloniaMap、MapViewWinForms と WPF(net8.0-windows、net9.0-windows、net10.0-windows)、Avalonia 12(net8.0、net9.0、net10.0)、Windows と Linux でのヘッドレス PNG

Delphi パッケージ: sgcMaps はフレームワークに依存しないコア、sgcMapsVCL は VCL のマップ、sgcMapsFMX は FireMonkey のマップで、デザイン時パッケージは dclsgcMaps と dclsgcMapsFMX です。sgcMaps を含むランタイムパッケージでビルドするプロジェクトは、sgcMapsVCL または sgcMapsFMX を追加します。パッケージとプラットフォームをご覧ください。

よくある質問

いいえ。タイル、マーカー、図形はコントロールがネイティブに描画するため、Web ビュー、JavaScript ライブラリ、配布が必要なブラウザランタイムはありません。

OpenStreetMap、OpenTopoMap、Esri のタイル、およびオフラインルーターとジオコーダーには不要です。MapTiler、Thunderforest、Stadia のタイル、および商用のジオコーディングとルーティングのプロバイダーには、ご自身のキーを使います。各プロバイダーにはそれぞれ利用規約があり、アプリケーションはそれに従う必要があります。

はい。タイルは z/x/y フォルダ、レイヤーごとのキャッシュ、MBTiles ファイル、PMTiles アーカイブから、ルートは TsgcMapOfflineRouter から、住所検索は TsgcMapOfflineGeocoder から取得できます。MBTiles、PMTiles、タイルダウンローダー、オフラインルーターとジオコーダーは、登録版のオフラインパックに含まれます。

GeoJSON、GPX、KML、WKT(EWKT を含む)をインポートおよびエクスポートでき、Esri の shapefile は属性とともにインポートでき、GPX のトラック統計情報と標高の色分けにも対応します。ストリーミングリーダーは、OpenStreetMap の .osm.pbf と XML ファイルも処理し、これがオフラインのルートグラフの作成に使われます。ファイル形式、Shapefile、WKTをご覧ください。

モデル、VCL コントロール、shapefile、WKT は、Delphi 7 と C++ Builder 2007 から動作します。一部の機能は、より高い最低バージョンが必要です。PNG 出力、タイルサーバー、WMS、WMTS は Delphi 2009 以降、ベクタータイル、PMTiles、オフラインルーターは XE2 以降、Windows の FireMonkey と GeoJSON は XE6 以降、MBTiles とオフラインジオコーダーは XE7 以降、オンラインサービスは XE8 以降です。macOS、iOS、Android の FireMonkey と、Linux 64 ビットのコアユニットには、Delphi 10.4 以降が必要です。

はい。TileSourceType が mtsWMS または mtsWMTS のレイヤーは、WMS 1.1.1 または 1.3.0 のサービス、あるいは KVP または REST エンコーディングの WMTS サービスから画像を取得し、capabilities リーダーがサービスの記述からレイヤーを設定します。地図は Web メルカトルなので、WMS レイヤーは EPSG:3857 でリクエストされ、WMTS サービスには Web メルカトルのタイルマトリックスセットが必要です。WMS と WMTS は、Community 版を含むすべてのエディションで利用できます。WMSとWMTSをご覧ください。

はい。TsgcWpfMap(NuGet の esegece.sgcMaps.Wpf)と TsgcAvaloniaMap(esegece.sgcMaps.Avalonia、Avalonia 12)は、WinForms の SgcMapControl と同じエンジンをホストします。レイヤーとマーカーは XAML で宣言でき、マーカーは ItemsSource でコレクションにバインドでき、ビューは双方向にバインドできます。どちらも無料の Community 版にも含まれます。WPF クイックスタートとAvalonia クイックスタートをご覧ください。

デモプロジェクトは Delphi 専用ですが、コンポーネントは C++ Builder 2007 から 13 にインストールでき、同じように動作します。上のコードセクションの C++ Builder タブに、生成されたヘッダーを使った同じ地図を掲載しています。

はい。Community 版は、年間総収益が 100 万ユーロ未満で、開発者が 5 人以下の個人や組織は無料で利用できます。オフラインパック以外のすべての機能があります。.NET のパッケージは、esegece.sgcMaps.Community、esegece.sgcMaps.Rendering.Community、esegece.sgcMaps.WinForms.Community、esegece.sgcMaps.Wpf.Community、esegece.sgcMaps.Avalonia.Community です。WMS、WMTS、shapefile、WKT、WPF と Avalonia のコントロールも Community 版に含まれます。より大きな組織には、登録版のライセンスが必要です。

sgcMaps のヘルプ

3,000+開発者
20+年
761+コンポーネント
30+API 連携
5プラットフォーム
30日間返金保証ご満足いただけない場合は、ご購入から30日以内に全額返金をリクエストできます。 返金ポリシーを見る

今すぐ sgcMaps をお試しください

sgcUI 体験版には、オフラインパックを含む sgcMaps と、他のすべての sgcUI 製品が含まれます。.NET Community 版は NuGet で無料です。