コード例 #1
0
        /// <summary>
        /// Look into the file system and see what tiles with the given identifier
        /// can be found.
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public async Task <IEnumerable <IGeometryItem> > InitializeLayer(string name)
        {
            if (!Models.Any(m => m.Name.ToLower() == name.ToLower()))
            {
                throw new NotSupportedException($"The Layer named {name} was not found in the Models collection");
            }

            var model = Models.First(m => m.Name.ToLower() == name.ToLower());

            if (model.Properties.Any(p => p.Name.ToLower() == LayerProperties.FileExt && p.Value != null && !string.IsNullOrEmpty(p.Value.ToString())))
            {
                return(GetFeatures(model.GetPropertyValueAs <string>(LayerProperties.FileExt), await GetText(model.Path)));
            }
            else if (model.Properties.Any(p => p.Name == LayerProperties.Features))
            {
                // this is loading from memory //
                var features = model.Properties.First(p => p.Name == LayerProperties.Features);
                return(featureCache.GetBy(model.Identifier));
            }
            else
            {
                throw new NotSupportedException($"The features of the requested layer with name: {name}, could not be found.");
            }
        }