Пример #1
0
        public ICachedVectorData Request(string shpFileName)
        {
            string identify = CachedVectorData.GetIdenfity(shpFileName);

            if (identify == null)
            {
                return(null);
            }
            if (_cachedDatas.ContainsKey(identify))
            {
                _refCounteds[identify]++;
                return(_cachedDatas[identify]);
            }
            else
            {
                ICachedVectorData data = null;
                if (_coordTransform == null)
                {
                    data = new CachedVectorData(shpFileName);
                }
                else
                {
                    data = new CachedVectorData(shpFileName, _coordTransform);
                }
                _cachedDatas.Add(data.Identify, data);
                _refCounteds.Add(data.Identify, 1);
                return(data);
            }
        }
Пример #2
0
        private IGrid ReadGridFromCacher(int gridNo, out bool isOK)
        {
            isOK = false;
            ICachedVectorData cache = GlobalCacher.VectorDataGlobalCacher.GetData(_fileUrl);

            if (cache == null)
            {
                return(null);
            }
            if (_cacheIdentify == null)
            {
                _cacheIdentify = cache.Identify;
            }
            Envelope evp = _gridStateIndicator.GetEnvelope(gridNo);

            Feature[] features;
            if (cache.CoordType == enumCoordinateType.Geographic)
            {
                features = cache.GetFeatures(evp);
                isOK     = true;
                return(new Grid(gridNo, evp, features));
            }
            else if (cache.CoordType == enumCoordinateType.Projection)
            {
                _featureClass.RuntimeProjecter.Project(evp);
                features = cache.GetFeatures(evp);
                if (features != null)
                {
                    foreach (Feature fet in features)
                    {
                        fet.Projected = true;
                    }
                }
                IGrid grid = new Grid(gridNo, evp, features);
                grid.CoordIsConverted = true;
                isOK = true;
                return(grid);
            }
            return(null);
        }