<\/HEAD>
マップは通常、方向付けのためのBasemap Layersと、地理情報の視覚化、クエリ、編集、分析のためのOperational Layersで構成されています。ArcGISでは、2つのBasemapsのタイプ<\/A>が区別されます:Raster Tile Services(キャッシュされたMap ServicesおよびImage Services)と比較的新しいVector Tile Servicesです。<\/P><\/P>
<\/P>
ライブマップへのリンク<\/A><\/P><\/P>
<\/DIV>
オフラインでBasemapsを使用するために
ArcGIS Runtime<\/A>では、長い間Raster Tile Servicesから直接Tile Packages(.tpk)をエクスポートすることが可能でした。新たに、Vector Tile Servicesの領域をエクスポートし、ローカルでVector Tile Packages(.vtpk)として使用できる機能が追加されました:<\/DIV><\/P>
1. 認証<\/>\n匿名でのエクスポートは許可されておらず、認証が必要です。そのためには複数の方法があります。例えばこのサンプル<\/>\n\n
3. タスク、パラメーター、およびジョブの作成と実行
以下のコードでは、データ(.vtpk)のみがエクスポートされ、スタイルはエクスポートされません。<\/P>
<SPAN class="comment token">// タスクを作成する</SPAN>
<SPAN class="keyword token">var</SPAN> exportTask <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">await</SPAN> ExportVectorTilesTask.<SPAN class="token function">CreateAsync</SPAN>(portalItem)<SPAN class="punctuation token">;</SPAN>
<SPAN class="comment token">// 新しいパラメーターインスタンスを作成する</SPAN>
<SPAN class="keyword token">var</SPAN> parameters <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> ExportVectorTilesParameters()<SPAN class="punctuation token">{
AreaOfInterest = exportArea.Geometry, // エクスポートするエリア
MaxLevel = exportTask.VectorTileSourceInfo.LevelsOfDetail.Count - 1 // エクスポートするレベル
};
<SPAN class="comment token">// エクスポートジョブを作成する</SPAN>
<SPAN class="keyword token">var</SPAN> job <SPAN class="operator token">=</SPAN> exportTask.ExportVectorTiles(parameters, Path.Combine(_vectorTileCachePath, "name.vtpk"));
<SPAN class="comment token">// ステータス更新の通知に登録する</SPAN>
job.JobChanged += (sender, e) =>
{
if (job.Status == Esri.ArcGISRuntime.Tasks.JobStatus.Succeeded)
{
// 何かを行う
}
else if (job.Status == Esri.ArcGISRuntime.Tasks.JobStatus.Failed)
{
// ユーザーに通知する
ShowStatusMessage(job.Error.Message);
}
};
<SPAN class="comment token">// エクスポートジョブを開始する</SPAN>
job.Start();<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></Span<span>><<emojI_29>> </spanspan>> <<emojI_30>> </spanspan>> vtpk とスタイル(存在する場合)を一度にエクスポートすることもできます。そのためには、ExportVectorTilesJob にスタイル用のフォルダーの保存パスを追加で渡す必要があります。
ExportVectorTilesJob job;
if (exportTask.HasStyleResources)
{
job = exportTask.ExportVectorTiles(parameters, Path.Combine(_vectorTileCachePath, "name.vtpk"), _styleResourcePath);
}
else
{
job = exportTask.ExportVectorTiles(parameters, Path.Combine(_vectorTileCachePath, "name.vtpk"));
}<<EMOJI_31> ><span class ="line-numbers-rows" ><span ><<emojI_32>> </span ><span ><<emojI_33>> </span ><span ><<emojI_34>> </span ><span ><<emojI_35>> </span ><span ><<emojI_36>> </span ><span ><<emojI_37>> </span ><span ><<emojI_38>> </span ><span ><<emojI_39>> </span ><span ><<emojI_40>> </span ></span ></CODE ></PRE ><P ></P ><P >そして スタイルのみをエクスポートする場合は次のようになります:<\/P><PRE class="lia-code-sample line-numbers language-none"><CODE><SPAN class="keyword token">var<\/SPAN> exportTask <SPAN class="operator token">=<\/SPAN> <SPAN class="keyword token">await<\/SPAN> ExportVectorTilesTask<SPAN class="punctuation token">.<\/SPAN><SPAN class="token function">CreateAsync<\/SPAN><SPAN class="punctuation token">(<\/SPAN>portalItem<SPAN class="punctuation token">)<\/SPAN><SPAN class="punctuation token">;<\/SPAN>
<SPAN class="keyword token">if<\/SPAN> <SPAN class="punctuation token">(<\/SPAN>exportTask<SPAN class="punctuation token">.<\/SPAN>HasStyleResources<SPAN class="punctuation token">)<\/SPAN>
<SPAN class="punctuation token">{<\/SPAN>
<SPAN class="keyword token">var<\/SPAN> exportStyleJob <SPAN class="operator token">=<\/SPAN> exportTask<SPAN class="punctuation token">.<\/SPAN><SPAN class="token function">ExportStyleResourceCache<\/SPAN><SPAN class="punctuation token">(<\/SPAN>_styleResourcePath<SPAN class="punctuation token">)<\/SPAN><SPAN class="punctuation token">;<\/SPAN>
<SPAN class="keyword token">var<\/SPAN> result <SPAN class="operator token">=<\/SPAN> <SPAN class="keyword token">await<\/SPAN> exportStyleJob<SPAN class="punctuation token">.<\/SPAN><SPAN class="token function">GetResultAsync<\/SPAN><SPAN class="punctuation token">(<\/SPAN><SPAN class="punctuation token">)<\/SPAN><SPAN class="punctuation token">;<\/SPAN>
<SPAN class="comment token">\/\/何か処理を行う<\/span>
<SPAN class="punctuation token">}<\/span><span class="line-numbers-rows"><span><\/span><span><\/span><span><\/span><span><\/span><span><\/span><span><\/span><span><\/span><\/span><\/code><\/pre><p><\/p><p>例えば、上で説明した<A href="http:\/\/www.arcgis.com\/home\/search.html?q=vector%20tile%20v2%20for%20export%20world%20basemap&t=content&focus=layers&start=1&sortOrder=desc&sortField=relevance" rel="nofollow noopener noreferrer" target="_blank">エクスポート可能なArcGIS Online Vector Tile Services</A>がすべてローカルのベースマップとして利用可能にしたい場合、1つのサービスからvtpkを、すべてのサービスからはスタイルのみをエクスポートする必要があります。StyleResourceフォルダにはスタイルの説明が記述されたJSONファイルのみが含まれており、これらは非常に小さいです。<\/p><p><img class="image-16 jive-image" src="https:\/\/us.v-cdn.net\/6038851\/uploads\/legacyfs\/online\/396344_pastedImage_1.png" style="width: 620px; height: 341px;" \/></p><h3 id="toc-hId-1751590101" id="toc-hId-1751590101"><\/h3><h3 id="toc-hId--800566860" id="toc-hId--800566860">ArcGIS RuntimeでのローカルVector Tile PackagesとStylesの利用方法<\/h3><p>ローカルのvtpkと既存のスタイルは次のようにマップに組み込むことができます:<\/p><p><pre class="lia-code-sample line-numbers language-none"><code><span class="comment token">\/\/_ スタイルを読み込む_<\/><br /><span class="keyword token">var</span> itemResourceCache <span class="operator token">=</span> <span class="keyword token">new</span> <span class="token class-name">ItemResourceCache</span>( _styleResourcePath );
<span class="comment token">\/_ vtpkを読み込む_<\/><br /><span class="keyword token">var</span> offlineVectorTileCache <span class="operator token">=</span> <span class="keyword token">new</span> <span class="token class-name">VectorTileCache</span>( Path.Combine( _vectorTileCachePath, "name.vtpk" ) );
<span class="comment token">\/_ キャッシュとスタイルでタイルレイヤーを作成_<\/><br /><span class="keyword token">var</span> layer <span class="operator token">=</span> <span class="keyword token">new</span> <span class="token class-name">ArcGISVectorTiledLayer</span>( offlineVectorTileCache, itemResourceCache );
<span class="comment token">\/_ キャッシュのみでタイルレイヤーを作成_<\/><br /><span class="comment token">\/_var layer = new ArcGISVectorTiledLayer(offlineVectorTileCache);_<\/><br />
<span class="comment token">\/_ レイヤーをベースマップとして新しいマップを作成_<\/><br /><span class="keyword token">var</span> map <span class="operator token">=</span> <span class="keyword token">new</span> <span class="token class-name">Map</span>( <span class="keyword token">new</span> <span class="token class-name">Basemap</span>( layer ) );
<span class="comment token">\/_ マップビューにマップを適用_<\/><br />MyMapView.Map <span class="operator token">=</span> map;<span class='line-numbers-rows'><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span></span><span>)開発者がすべてをうまく組み合わせると、ArcGIS Runtimeアプリでローカルに複数のベースマップを1つのvtpkベースで利用できます。デバイス上のデータのストレージ容量についてもほとんど心配する必要がなくなります。バイエルン地域全体の詳細度でテストしたところ、vtpk+スタイルのサイズは約230MBで、エクスポートには約7分かかりました。重要な情報として、エクスポートには最大制限("maxExportTilesCount":10000)があることも覚えておいてください。
< / p >< p > < span style = "font-size: 12px;" >< em >オフラインVector Tileベースマップ(追加スタイルなし、.vtpkのみ読み込み) </ em >< / span >< / p >< p >< img __jive_id = "396232"class = "jive-image image-10"src = "https://us.v-cdn.net/6038851/uploads/legacyfs/online/396232_pastedImage_8.png"style = "width: 620px; height: 505px;"/>< / p >< p >< span style = "font-size: 12px;" >< em > オフラインVector Tileベースマップ スタイル付き </ em >< / span >< / p >< p >< img __jive_id = "396233"class = "image-11 jive-image"src = "https://us.v-cdn.net/6038851/uploads/legacyfs/online/396233_pastedImage_9.png"style = "width: 620px; height: 505px;"/>< / p >< p > < span style = "font-size: 12px;" >< em >オフラインVector Tileベースマップ スタイル付き </ em >< / span >< / p >< p >< img __jive_id = "396235"class = "image-12 jive-image"src = "https://us.v-cdn.net/6038851/uploads/legacyfs/online/396235_pastedImage_11.png"style = "width: 620px; height: 505px;"/>< / p >< p > < span style = "font-size: 12px;" >< em >オフラインVector Tileベースマップ スタイル付き </ em >< / span >< / p >< p >< img __jive_id = "396236"class = "image-13 jive-image"src = "https://us.v-cdn.net/6038851/uploads/legacyfs/online/396236_pastedImage_12.png"style = "width: 620px; height: 505px;"/>< / p >< p >< span style = "font-size: 12px;" >< em > オフラインVector Tileベースマップ スタイル付き </ em >< / span >