<\/HEAD>
Un mapa digital generalmente consiste en Basemaps y datos vectoriales, que se representan superpuestos en forma de capas. Los Basemaps son imágenes georreferenciadas sin información geográfica recuperable. No se actualizan con mucha frecuencia y sirven esencialmente para la orientación. Por otro lado, los datos vectoriales son objetos geográficos (Features), que consisten en una geometría y la información asociada. Generalmente se representan sobre los Basemaps con una simbología adecuada. Los datos vectoriales pueden ser utilizados en el cliente para informar, analizar y también para la captura de datos.<\/P>
<\/P>
ArcGIS ofrece varias posibilidades para usar Basemaps y datos vectoriales también offline en diferentes dispositivos. En este Blog<\/A>se aborda más detalladamente el tema de los datos vectoriales offline. A continuación, nos centraremos más en los Basemaps offline y su uso en aplicaciones basadas en ArcGIS Runtime<\/A>.<\/P><\/P>
<\/P>
<\/>Herramientas para crear Basemaps Offline<\/>
= <\/SPAN>
new<\/SPAN> Progress<\/SPAN><<\/SPAN>ExportTileCacheJob<\/SPAN>>();<\/SPAN>\nexportTileCacheJobStatusProgress.ProgressChanged += (p, q) =><\/SPAN><\/LI><\/OL>\n{<\/SPAN>\n if<\/SPAN> (q.Messages == <\/SPAN>null<\/SPAN>)<\/SPAN>\n return<\/SPAN>;<\/SPAN>\n \/\/hacer algo<\/SPAN>\n};<\/SPAN>\n\nawait<\/SPAN> _exportTileCacheTask.EstimateTileCacheSizeAsync(_generateTileCacheParameters,\n (result, ex) => <\/SPAN>\/\/ Callback for when estimate operation has completed<\/SPAN>\n& nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; {\n  ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; & nbsp ; if (ex == null) // Verificar si la operación se completó con errores \n { \n _model.SetMessageInfo(string.Format("Baldosas:{0} - Tamaño (kb): {1 : 0}", result.TileCount, result.Size /1024)); \n } \nelse \n { \n _model.SetMessageInfo(string.Format("Error:{0}", ex.Message)); \n } \n }, TimeSpan.FromSeconds(5), CancellationToken.None, exportTileCacheJobStatusProgress);\n&n bsp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;\n&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;;&n bsp;\n } += (p, q) =>
{
if (q.Messages.Count < 1)
return;
_model.SetMessageInfo(string.Format("{0}", q.Messages[1].Description));
};
var downloadProgressChanged = new Progress();
a)downloadProgressChanged.ProgressChanged += (p, q) =>
{
//do something
};
var downloadTileCacheResult = await _exportTileCacheTask.GenerateTileCacheAndDownloadAsync(
_generateTileCacheParameters,
downloadOptions, TimeSpan.FromSeconds(5), CancellationToken.None, generateStatusCheckProgress,
downloadProgressChanged);
Si todo ha transcurrido sin problemas, ahora tenemos un Offline Basemap guardado localmente en nuestro dispositivo como Tile Package.
Implementar Offline Basemaps en ArcGIS Runtime
Integrar Offline Basemaps en el mapa es relativamente simple. En todos los ArcGIS Runtime SDKs existe el objeto ArcGisLocalTiledLayer. A este le damos la ruta a nuestro Tile Package y luego lo añadimos a la LayerCollection del mapa.
Así se hace (ArcGIS Runtime SDK for .NET):
var arcGisLocalTiledLayer = new ArcGISLocalTiledLayer(@c:\temp\basemap.tpk);
var offlineMap = new Map();
offlineMap.Layers.Add(arcGisLocalTiledLayer);
var mapView = new MapView { Map = offlineMap };
CurrentEsriMapView = mapView;
Más información
• Página de inicio para desarrolladores de ArcGIS
• Blog con más información sobre ArcGIS Runtime y Offline
• Blog específicamente sobre datos vectoriales Offline
• Aplicación de ejemplo Collector Light en GitHub, los fragmentos en el blog están tomados de ahí