ベクターオブジェクトに加え、リモートGeoJsonファイルを使用してマップに形状を追加することもできます。この機能を使用すると、ローカルファイルからデータをインポートしたり、外部ドメインからデータをロードすることができます。
GeoJson機能には、住所や位置を追加するためのポイント、番地や境界を示すために使用できるライン文字列、国境や県境などの行政界を示すための多角形、およびこれらのタイプのマルチパートコレクションを格納できます。
次のトピックでは、リモートGeoJsonファイルを使用して、マップコントロールにいくつかの形状を表示する方法を示します。 プロジェクトのResourcesフォルダに、2つの.geo.jsonファイルが追加されていることを確認してください。
.jsonファイルが正しくダウンロードされるようにするには、web.configファイルの<system.webServer> </system.webServer>タグの間に次のマークアップを追加します。
<staticContent> <mimeMap fileExtension=".json" mimeType="application/json"/> </staticContent>
<head></head>タグの間に次のスクリプトを追加して、マップコントロール上で米国の都市を強調表示するために、形状の塗りつぶしと透過度を設定します。
スクリプト
ソースビュー |
コードのコピー
|
---|---|
<script type="text/javascript"> function onUsShapeCreated(e, d) { d.shape.attr("fill", "#00F").attr("fill-opacity", 0.2); } </script> |
フォームにMapsコントロールを追加し、次の手順を実行して、GeoJsonファイルを使用してマップコントロールに形状を表示します。
次のアセンブリをインポートします。
C# |
コードのコピー
|
---|---|
using C1.Web.Wijmo.Controls.C1Maps; using C1.Web.Wijmo.Controls.C1Maps.GeoJson; using GeoJsonFeature = C1.Web.Wijmo.Controls.C1Maps.GeoJson.Feature; using System.Drawing; |
VB |
コードのコピー
|
---|---|
Imports C1.Web.Wijmo.Controls.C1Maps Imports C1.Web.Wijmo.Controls.C1Maps.GeoJson Imports GeoJsonFeature = C1.Web.Wijmo.Controls.C1Maps.GeoJson.Feature Imports System.Drawing |
次のコードを Page_Load イベントに追加して、GeoJsonファイルを使用してマップコントロールに形状を表示するためのベクターレイヤを2つ追加します。
C# |
コードのコピー
|
---|---|
if (!IsPostBack) { var uslayer = new C1VectorLayer(); var countriesLayer = new C1VectorLayer(); C1Maps1.Layers.Add(uslayer); C1Maps1.Layers.Add(countriesLayer); uslayer.OnClientShapeCreated = "onUsShapeCreated"; uslayer.DataType = DataType.GeoJson; uslayer.DataUrl = "Resources/us.geo.json"; countriesLayer.DataType = DataType.GeoJson; countriesLayer.DataUrl = "Resources/countries.geo.json"; } |
VB |
コードのコピー
|
---|---|
If Not IsPostBack Then Dim uslayer As New C1VectorLayer() Dim countriesLayer As New C1VectorLayer() C1Maps1.Layers.Add(uslayer) C1Maps1.Layers.Add(countriesLayer) uslayer.OnClientShapeCreated = "onUsShapeCreated" uslayer.DataType = DataType.GeoJson uslayer.DataUrl = "Resources/us.geo.json" countriesLayer.DataType = DataType.GeoJson countriesLayer.DataUrl = "Resources/countries.geo.json" End If |
次の図は、C1Mapsコントロールに世界中のすべての国を黒い境界で表示し、米国のいくつかの都市を紫色で強調表示したところです。